在开始迁移前,必须了解当前主从架构的状态:
登录从库,执行SHOW SLAVE STATUS\G,记录关键信息: Master_Log_File:当前读取的主库二进制日志文件名 Read_Master_Log_Pos:读取位置 Relay_Master_Log_File:已中继处理的日志文件 Exec_Master_Log_Pos:已执行的位置 Master_Host, Master_User, Master_Port:主库连接信息 确保从库没有延迟(Seconds_Behind_Master = 0) 检查主库的
SHOW MASTER STATUS,确认binlog是否正常生成 二、备份从库数据与配置
如果迁移目标是替换从库,建议先对现有从库进行完整备份:
使用mysqldump或物理备份工具(如 Percona XtraBackup)导出数据 备份
/etc/my.cnf或
my.ini中的复制相关配置,例如:
server-id
relay-log
log-slave-updates(如有级联复制)
read-only记录用于复制的账户(如 repl_user)和权限 三、在新节点恢复并配置复制
将旧从库的数据和配置应用到新服务器:
在新机器上安装相同或兼容版本的MySQL 恢复备份数据(逻辑导入或物理还原) 修改新节点的配置文件,设置唯一的server-id,避免与原主从冲突 启动MySQL服务,但暂不启动复制 使用之前记录的主库binlog位置,执行CHANGE MASTER TO:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码', MASTER_LOG_FILE='记录的Master_Log_File', MASTER_LOG_POS=Read_Master_Log_Pos;启动复制:
START SLAVE;再次运行
SHOW SLAVE STATUS\G确认
Slave_IO_Running和
Slave_SQL_Running均为 Yes 四、主库迁移时的特殊处理
若需迁移主库(如主库更换),操作更复杂:
先将原从库提升为新主库(执行STOP SLAVE; RESET SLAVE ALL;) 更新新主库的
my.cnf,启用
log-bin和唯一
server-id重启服务,开启binlog写入 其他从库需重新指向新主库,使用新的
CHANGE MASTER TO指令 所有应用连接配置也需更新为主库新地址
迁移完成后,持续监控复制状态和性能,确保无错误发生。
基本上就这些,关键是保持binlog位置准确,配置一致,操作有序。复制配置迁移不复杂,但细节决定成败。
