注意,MariaDB 10.4不是最新版本,新版本10.4。客户要求是搬到MySQL 8.0特定RDS的云功能。

谨慎:重要的是要确认你没有使用任何特定的迁移到MySQL 8.0.x之前MariaDB特性。

最近,我们有一个客户想从MariaDB MySQL 10.4到8.0,这转变提出了诸多挑战。版本之间的不兼容性和不支持复制直接升级是不可能的。这个博客将探索在升级过程中遇到的障碍和创新的解决方案,挽救了一天。

不相容的障碍

MariaDB 10.4使用Aria引擎系统表。由于咏叹调MariaDB-only引擎,直接MariaDB 10.4 > MySQL 8“就地”升级后,10.4是不可能的。我不是列出所有不兼容/差异,但是你可以找到他们在这里。我尝试就地升级测试虚拟机我自己的好奇心和有一些重做日志格式错误/数据字典错误。

导入表空间——风险和停机时间

在客户端数据集1 tb +,我们尝试其他更快的选项前的逻辑备份/恢复方法(安全/首选项)。我们尝试模式转储和导入表空间(参考进口InnoDB表更多细节),测试虚拟机工作得很好,但这个选项涉及读锁/停机时间,这不是首选的生产环境,也被认为是一个危险的选择。

逻辑备份/恢复的方法,但如何保持数据同步?

最后,达成共识后,逻辑备份/恢复选项被选为最安全的选择。但在那之后,我们还必须测试“不支持”复制设置确保数据可以同步MariaDB MySQL 10.4到8。x直到我们准备迁移到MySQL 8。x服务器。这个复制测试工作好的在我的测试虚拟机有最小的数据除了一些预期的用户创建语句失败有一个简单的解决方案。

然而,尽管与客户端数据测试,我们没有那么幸运;错误日志揭示意想不到的事件序列复制设置期间,MySQL 8节点上导致崩溃。

我们做研究的错误,但很明显binlogs是不相容的,复制设置是不可靠的。

探索下一个选项——MySQL 5.7中级副本

我们需要一个复制链接建立最小中断,给我们时间去做转换以最少的停机时间。复制到MySQL 8不工作,我们尝试复制从MariaDB 10.4到MySQL 5.7测试binlog兼容性。所以我们配置MySQL 5.7副本逻辑备份恢复。

并且它成功了!的复制设置MariaDB 10.4 > MySQL 5.7工作,没有任何问题和副本同步。我们监raybet雷竞技竞猜在线官网控复制好几天,以确保没有错误。后来我们另一个节点配置MySQL 8.0从MySQL 5.7节点复制链复制拓扑,和迁移到MySQL 8。x是像往常一样完成的。简而言之,拓扑配置如下:

MariaDB到MySQL

结论

引入一个MySQL 5.7中级副本被证明是一个有用的解决方案在这种情况下,克服MariaDB MySQL 10.4和8.0之间的复制的挑战。它还显示了彻底测试的重要性在复杂的数据库升级。我希望它鼓励其他人面临着类似的障碍在数据库迁移考虑替代策略和拥抱的力量测试成功的结果。或者你有雷竞技下载官网帮助吧!

雷竞技下载官网Percona MySQL是最完整,分布稳定、可伸缩的、安全的MySQL开源解决方案,提供企业级的数据库环境最关键业务应用程序…和它的免费使用!

raybetapp2下载

订阅
通知的
客人

0评论
内联反馈
查看所有评论