MySQL主从库数据的一致性——percona-toolkit工具集

如需转载请注明出处https://my.oschina.net/feistel/blog/2996118

 

我丑 话说在前头:

192.168.1.116 主masterA Windows MySQL8.0
192.168.1.200 备库B,VMUbuntu18 MySQL8.0

shell代表Ubuntu终端
cmd代表Windows终端

----------------------------------------------------------------------------------------------------------------

1

使用percona-toolkit工具集中的pt-table-chechsum

下载percona-toolkit地址(有点慢,到外面去会快点):
https://www.percona.com/downloads/percona-toolkit/LATEST/

----------------------------------------------------------------------------------------------------------------

 

2

shell>
pt-table-checksum --no-check-binlog-format --replicate=autoclub_db.checksums --databases=autoclub_db -ulgl -p123456 -h 192.168.1.116

--no-check-binlog-format:默认yes,建议启用不检查模式
--replicate:把信息写入到指定表中,会在autoclub_db中创建checksums表
--databases:指定库,用逗号隔开
--tables:指定表,用逗号隔开
-ulgl -p123456 -h 192.168.1.116:格式固定,-u -p后不能用空格隔开

得到如下表:
            TS ERRORS  DIFFS     ROWS  DIFF_ROWS  CHUNKS SKIPPED    TIME TABLE
01-02T15:29:35      0      0      210          0       1       0   0.122 autoclub_db.article_infos

DIFFS:0无差异,1存在不同
ROWS:所检测的表的行数

原理:针对两库中的某张表的所有字段进行hash运算,得到主库为master_crc、master_cnt,从库为this_crc、this_cnt,然后分别对比,判断一致性。

----------------------------------------------------------------------------------------------------------------

3

对于从库宕机,恢复后,会自动与主库进行同步。

对于主库来说需要使用pt-table-sync进行数据修复,如果两库均在Linux系统下的转到4,数据修复。

其中对于windows来说官方没有给出percona的windows版本,我这里无法与从库同步,所以目前我还没有对4进行真正的实验,以下内容均为胡编乱造。

----------------------------------------------------------------------------------------------------------------

4

估且认为我的A mysql是在Linux Unbuntu环境下搭建的

A shell>
pt-table-sync --replicate=autoclub_db.checksums h=192.168.1.200,u=lgl,p=123456 -print
--replicate:表示使用part2生成的表
-print:打印但不执行

A shell>
pt-table-sync --replicate=autoclub_db.checksums h=192.168.1.200,u=lgl,p=123456 -execute
-execute:执行命令


在使用part2效验数据是否一致。

----------------------------------------------------------------------------------------------------------------

至此,共勉,如需转载请注明出处https://my.oschina.net/feistel/blog/2996118

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值