pt-slave-restart
pt-slave-restart 是 pt-replica-restart 的符号链接(旧名称),两者完全等同。 请阅读 pt-replica-restart 的文档。
用法示例
pt-slave-restart 与 pt-replica-restart 是同一个程序(符号链接),以下命令把二进制名换成 pt-slave-restart 即可,选项、参数、行为完全一致。
以下命令假定已通过选项文件或本机 socket 配置好 MySQL 连接;副本主机用 DSN(如 h=副本主机,不写明文密码)指定。本工具会跳过复制错误并重启线程,可能加剧主从数据不一致,使用前务必先排查错误根因——它用于"越过"错误而非"修复"复制。
场景:后台常驻自动重启
守护进程持续监视 replica-host,遇到可跳过的错误就自动重启复制线程:
bash
pt-slave-restart --daemonize h=replica-host场景:只跳过指定错误号
只处理重复主键(1062)这类已知无害错误,遇到列表外的错误直接退出,避免盲目跳过其它问题:
bash
pt-slave-restart --error-numbers 1062 h=replica-host场景:按错误文本匹配跳过
用 Perl 正则匹配 last_error 文本,只重启文本命中的错误:
bash
pt-slave-restart --error-text 'Could not parse' h=replica-host场景:追到指定 binlog 位点就停
让副本一直追到源的 mysql-bin.000123,456789 这个坐标为止再停,常用于把副本恢复到某个已知正确位点(格式 file,pos,逗号无空格):
bash
pt-slave-restart --until-source mysql-bin.000123,456789 h=replica-host场景:顺带监视下级副本
主副本下面还有更深的从库时,用 --recurse 2 把下级副本也一并纳入监视(深度 2),多于一个时并行 fork 监视:
bash
pt-slave-restart --recurse 2 h=replica-host场景:靠 cron 每小时自愈重启
放进 crontab 每小时跑一次,用非默认 --sentinel 保证只停掉同一 cron 启动的实例,防服务器崩溃后漏重启:
bash
pt-slave-restart --monitor --stop --sentinel /tmp/pt-replica-restartup h=replica-host更多细节请阅读 官方文档。