首先确保主从复制状态正常,记录主库binlog位置及从库复制位点;接着用mysqldump备份主库数据并恢复到新主库,保持复制一致性。

迁移主从复制数据通常是为了升级系统、更换服务器或调整架构。整个过程需要保证数据一致性,避免服务中断。核心思路是将现有主从结构中的数据安全迁移到新环境,同时保持复制关系正常运行。
确认当前主从状态
在操作前必须了解当前主库和从库的运行情况:
- 登录主库执行 SHOW MASTER STATUS;,记录当前的二进制日志文件名(File)和位置(Position)
- 登录从库执行 SHOW SLAVE STATUSG,检查 Slave_IO_Running 和 Slave_SQL_Running 是否为 Yes,确认复制正常
- 记录从库的 Master_Log_File 和 Read_Master_Log_Pos,用于后续比对一致性
备份主库数据并恢复到新主库
使用逻辑或物理备份方式将主库数据导出:
- 推荐使用 mysqldump 进行一致性备份:
mysqldump –master-data=2 –single-transaction -u root -p –all-databases > backup.sql
–master-data=2 会记录主库的 binlog 位置,便于后续配置复制 - 将 backup.sql 拷贝到新主库服务器,导入数据:
mysql -u root -p
配置新主从关系
如果新环境包含新的主库和从库,需重新建立复制链路:
- 在新主库上启用 binlog 并设置 server-id(不能与旧主从重复)
- 在新从库上执行 CHANGE MASTER TO 命令,指向新主库的 IP 和端口,并使用备份中记录的 binlog 位置
- 启动复制:START SLAVE;
- 再次运行 SHOW SLAVE STATUSG 确认无错误
切换应用连接并验证
确保新主从同步正常后,逐步迁移业务流量:
- 暂停旧主从写入(可选,视业务容忍度而定)
- 确认新从库已追平所有数据
- 将应用程序的数据库连接指向新主库
- 监控新主从的延迟、错误日志和性能指标
基本上就这些。关键是每一步都要验证状态,不要跳过检查环节。迁移期间建议低峰期操作,避免影响线上业务。只要备份完整、位置准确、配置正确,主从迁移可以平稳完成。


