mysql5.0升级mysql5.7方案调研

Posted by 刘勇(lyonger) on 2020-03-05

mysql5.0 upgrade mysql5.7方案调研

背景

  • window mysql5.0升级到centos7下的mysql5.7
  • 需升级的数据量:120G

风险评估

  • mysql本身就是一个跨平台的轻量级数据库,所以从Windows迁移到centos问题应该不大,但需测试。
  • 120G数据对一个mysql来说还不算非常大,中等的样子,所以数据量没问题,会消耗一点时间。

方案调研

顺序升级

  • 顺序升级是指:参考官方的版本升级次序,每次升级一个major release版本,比如5.0升级到5.5。
  • 5.7官方升级指引参考这里

image

  • 官方建议每次升级一个major release版本,比如从5.0升级到5.7时,推荐的升级方式是5.9->5.5->5.6->5.7。该方法虽然安全稳定,但是会给业务带来更多时间成本和人力成本,120G的数据需做3次升级操作。那么我们试试探索直接从5.0->5.7,是否有比较可行的方案。

image

跳跃升级

  • 跳跃升级是指:一次性跨越多个一个major release版本,比如5.0直接升级到5.7。从官方博客中,有收集到2种升级方式:mysqldump方式in place原地升级方式

    • mysqldump方式:简单的说就是先停止业务读写后,先完整dump出当前数据。然后创建一个新版本实例,初始化以后把dump出的备份load进来,即需要先导出再导入。数据量大时,不管是导出还是导入都是比较耗时的操作。
    • 原地升级方式(in place):简单的说就是先停止业务读写后,直接备份当前数据库,直接在当前实例进行upgrade,不需要先导入再导入。速度比较快,但是风险较高,因为直接在原环境操作,有问题时回滚也比较耗时。
  • mysqldump方式可以参考官方博客的指引说明:http://mysqlserverteam.com/upgrading-directly-from-mysql-5-0-to-5-7-with-mysqldump/

  • 原地升级方式可以参考官方博客的指引说明:https://mysqlserverteam.com/upgrading-directly-from-mysql-5-0-to-5-7-using-an-in-place-upgrade/

总结

  • 如果升级的业务数据非常之重要,是核心业务数据。建议使用顺序升级方式,比较稳定,回退也方便。
  • 如果升级的业务数据不那么重要,可以尝试使用跳跃升级方式。

附加说明

  • 注意,每种方式均需结合自身业务,搭建与业务相同的测试环境进行多次测试。测试稳定以后再找一个时间点对线上业务进行变更。


支付宝打赏 微信打赏

赞赏一下