暂停、重置、清空要分清
STOP REPLICA 只是暂停复制线程,START REPLICA 可以随时恢复;RESET REPLICA ALL 清空复制的元数据与中继日志,用于彻底重配复制链路;RESET MASTER 清空本机的 binlog 与 GTID 记录,会破坏所有下游从库与归档链。三者风险等级相差很大,执行前必须确认要的是哪一个。
命令与场景
| 命令 | 作用 | 典型场景 |
|---|---|---|
| STOP REPLICA / START REPLICA | 暂停与恢复复制线程 | 维护窗口、跳事务、改复制参数 |
| RESET REPLICA ALL | 清空复制元数据与中继日志 | 彻底重配复制链路或重建从库 |
| RESET MASTER | 清空本机 binlog 与 GTID 记录 | 仅新实例初始化,风险极高 |
| CHANGE REPLICATION SOURCE TO | 重新指定复制来源 | 换主库、改账号或改 GTID 模式 |
| SHOW REPLICA STATUS | 确认线程状态与错误 | 每次变更前后核对 |
重配链路示例
重配链路示例
STOP REPLICA; # 先暂停,避免变更时仍在重放
SHOW REPLICA STATUS\G # 记录当前状态,便于回退
RESET REPLICA ALL; # 清空元数据与中继日志
CHANGE REPLICATION SOURCE TO SOURCE_HOST='10.0.0.12', SOURCE_USER='repl', SOURCE_PASSWORD='***', SOURCE_AUTO_POSITION=1;
START REPLICA; # 5.7 语法为 START SLAVE;
SHOW REPLICA STATUS\G # 确认两个线程为 Yes 且无错误典型使用场景
- 主库切换后重配复制指向
- 从库数据重建完成后重新建立复制
- 复制参数调整(并行度、过滤规则)需重启线程的场景
- 演练复制中断的恢复流程
- 新实例初始化时清理本机 binlog
STOP REPLICA 只暂停当前进程的复制线程,实例重启后配置仍会生效;真正要清空复制配置时用 RESET REPLICA ALL。
RESET MASTER 会清空本机 binlog 与 GTID 记录,在存在下游从库或备份链的情况下执行等于主动断链,禁止随手使用。
变更前的准备与核对
- 记录变更前 SHOW REPLICA STATUS 的完整输出,便于对比与回退
- 评估业务可接受的复制中断时长,必要时提前停止写入
- 变更后确认两个线程状态、错误信息与延迟是否恢复正常
- 把变更时间、命令与结果写入运维记录,便于后续排查
与 GTID 的配合
- 开启 GTID 后重配链路通常用 SOURCE_AUTO_POSITION=1,无需手工记录文件名与位点
- 复位前确认 GTID 集合设置与下游的自动定位方式一致,避免起点错乱
- 维护窗口内先停线程再改配置,减少出现不一致状态的概率