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官方升级指引参考这里。
- 官方建议每次升级一个
major release
版本,比如从5.0升级到5.7时,推荐的升级方式是5.9->5.5->5.6->5.7
。该方法虽然安全稳定,但是会给业务带来更多时间成本和人力成本,120G
的数据需做3次升级操作。那么我们试试探索直接从5.0->5.7,
是否有比较可行的方案。
跳跃升级
-
跳跃升级是指:一次性跨越多个一个
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/
总结
- 如果升级的业务数据非常之重要,是核心业务数据。建议使用顺序升级方式,比较稳定,回退也方便。
- 如果升级的业务数据不那么重要,可以尝试使用跳跃升级方式。
附加说明
- 注意,每种方式均需结合自身业务,搭建与业务相同的测试环境进行多次测试。测试稳定以后再找一个时间点对线上业务进行变更。
赞赏一下