pt-table-sync 修复同步数据一致问题

修复方向master向从库同步,由于是一主一从所以这个方向没问题,以master的数据为准:

pt-table-sync --print --execute h=master,D=database_name,t=table_name,u=root,p=password h=web3 --no-check-slave --lock=1 --charset=utf8mb4

参数格式

pt-table-sync DNS1 DNS2 DNS3

DNS1是源数据库
后面的都是目标数据库
DNS格式说明:D数据 u用户名 p密码 t表名
上面的例子只有一个目标数据修复单个表
也可以修复整个数据库:

pt-table-sync --print --execute h=master,D=database_name,u=root,p=password h=web3 --no-check-slave --lock=1 --database=database_name --charset=utf8mb4

–no-check-slave 主向从同步需要这个参数,否则只能从向主同步,因为如果有多个从库可能会导致新的不一致
–print 打印出来(实际运行时请去掉这参数 否则遇到特殊字符时会导致修复中断)
–execute 真的运行,去掉这个参数可以只预览
–charset=utf8mb4 设置字符串否则可能会乱码

–lock=1
       1:循环锁,默认1000条一个周期,一个周期提交一次事物,建议使用这个锁类型不影响写入
       否则数据量过大会导致锁检查过的表,默认是一次性提交