主从复制环境中, 可能有种种原因导致主, 从库数据不一致的情况, 主从一致性也一直是 DBA 需要关注的问题, 校验 MySQL 的主从一致性一般有多种工具, 诸如 MySQL 自带的 checksum,mysqldiff,pt-table-checksum 等, 每种工具各有优缺, 本文就 pt-table-checksum 工具进行介绍和记录实验环节.
?
下载二进制版本的 percona-toolkit 工具箱
https://www.percona.com/downloads/percona-toolkit
本文用的是 2.2.18 版本
- [[email protected]
- ~]# tar xvf percona-toolkit-2.2.18.tar.gz
- [[email protected]
- ~]# cd percona-toolkit-2.2.18
- [[email protected]
- percona-toolkit-2.2.18]# perl Makefile.PL
- [[email protected] percona-toolkit-2.2.18]# make && make install
- ?
- ?
主库创建 checksums 用户用于校验主从是否一致
开始执行校验, 在校验结束后, 会在 test 库下创建表名为 checksums 的表用于存储主从一致性信息
?
从库可以执行本条 SQL 来查看哪些表有主从不一致的情况, 此时主从是一致的所以没有结果
?
我们先删除 www 库下的某张表的某一行
?
?
再次运行同步校验
?
可以发现在从库上执行本条 SQL 可以看到主从不一致的表名
?
?
同理我们删掉 erp 库下的某张表的某一行
?
?
再次运行同步校验
?
?
可以发现刚刚删除的 erp_mard 表已经进入到了我们的主从不一致记录表里
?
?
我们在主库执行 pt-table-sync 命令来进行重新同步 (请做好备份, 重要的话说三遍, 备份备份备份)
同步完后重新验证
?
可以发现 checksums 表已经没有不同步的表了
?
?
至此主从校验, 同步完成
?
pt-table-checksum,pt-table-sync 这两个工具还有很多重要的特性和参数, 这里仅做实验用, 具体的生产还需要哪些参数, 比如只同步某张表等以后会继续深入研究
?
?
来源: http://www.bubuko.com/infodetail-3090780.html