介绍
本次MySQL迁移过程的目标是将Database A和Database B的部分数据迁移到新建的Database C中,业务允许停机时间最长为2小时。本文将详细介绍三次迁移的方案及流程,并分析瓶颈和优化过程。

方案
第一次迁移
测试目的:搭建测试环境供业务测试使用,对数据准确性无要求。硬件条件以及时间需求限制,无法采用物理备份/复制等手段。采用mysqldump进行拆分导出导入
由于导入时会创建大量索引,索引创建过程无法并行,总体耗时约40小时,无法满足业务需求。
第二次迁移
测试目的:优化第一次迁移的问题,采用传输表空间方式
流程:备份表结构及A/B的数据结构,传输ibd文件,恢复表结构并导入传输过来的ibd文件,替换表空间。
虽然测试耗时约6小时,但仍然无法满足业务要求。分析瓶颈在传输文件和mysql更新ibd文件每个page的lsn耗时较多。
第三次迁移
测试目的:优化第二次迁移的问题,采用物理备份方式
流程:
- 备份Database A/B的物理结构
- 在线传输备份文件到Server C
- 在线恢复Database B的物理结构
- 在线升级Database B
- 在线清理不需要的数据
- 在线创建Database A
- 在线恢复Database A
- 在线配置多源复制
- 在线正式割接断开复制,并修改Database C参数
- 对A/B数据库进行物理备份并恢复
- 升级Database C
- 清理多余数据
- 配置复制
通过以上方式,仅需几分钟的业务停机时间即可满足业务需求。
结论
通过三次迁移过程,我们发现物理备份方式最为可靠且高效。同时,根据瓶颈分析,我们可以优化迁移过程中的传输文件和mysql更新ibd文件每个page的lsn操作。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5890.html
