mysql 主从一致性检测与修复

percona-toolkit下载

需要安装的依赖包[centos7]
yum -y install perl-Digest-MD5 perl-DBI perl-DBD-MySQL --nogpgcheck --disablerepo mysql80-community --enablerepo mysql57-community

原理

将一张大表分成多个chunk,每次针对一个chunk进行校验,同时将校验的结果通过REPLACE INTO语句写入到percona.checksums表中,然后该语句通过主从复制,在SLAVE中同样执行一次,校验的结果同样是写入到percona.checksums表中,最后,通过查询percona.checksums来获取主从不一致的信息。

指令介绍

pt-table-checksum
pt-table-checksum  --set-vars innodb_lock_wait_timeout=120 u=remote,p=QianFeng@123,h=192.168.96.157,P=3306 --no-check-binlog-format --quiet
 
--set-vars innodb_lock_wait_timeout=120 设置变量,innodb锁等待两分钟
-h remote 主库ip
-p 主库密码
-u 主库用户
-P 主库端口
--no-check-binlog-format pt-table-checksum默认是运行在statement下,如果是其它日志格式,需加--no-check-binlog-format参数
--quiet 输出静默
 
pt-table-checksum  --set-vars innodb_lock_wait_timeout=120 u=remote,p=QianFeng@123,h=192.168.96.157,P=3306 --no-check-binlog-format --replicate-check-only
 
--replicate-check-only 如果指定了--replicate-check-only参数,则意味着不会校验任何表,直接获取上次校验的结果。
pt-table-sync
pt-table-sync --execute --print  --charset=utf8 --replicate=percona.checksums  h=192.168.96.157,u=remote,p=QianFeng@123
 
--execute 恢复数据到从库
--print 打印sql
--charset 指定字符集
--replicate 指定记录差异的库表,会自动创建,mariadb为test.checksums

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值