pt-table-checksum检查Mysql主从复制数据一致性
注意:
1、安装pt-table-checksum报错
user@localhost:~$$ pt-table-checksum
06-28T20:53:12 install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 13) line 3.
at /usr/bin/pt-table-checksum line 1569.
查看该可执行二进制包含哪些动态库 ldd /usr/lib64/perl5/auto/DBD/mysql/mysql.so
结果显示 libmysqlclient.so.16 缺失或者库的位置无法找到):
解决办法:
安装perl-DBD-MySQL依赖并
ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16
2、pt-table-checksum只检查主库存在的表,如果要检查的表在从库不存在,或者表结构同主库不一致,那么对该表的checksum会破坏从库复制线程。如果要检查的表在只在从库存在,那么无法检查出该表。、
参数说明
1、–no-check-binlog-format
如果主从数据库binlog日志不是运行在statement格式下,需加该参数。
2、–no-check-replication-filters
如果主从数据库有过滤条件使用此参数。
3、–replicate-database
指定固定库的效验。
4、–replicate-check-only
不在主从库做 checksum 查询,只在原有 percona.checksums 表中查询结果,并输出数据不一致的信息。周期性的检测一致性时可能用到。
5、–create-replicate-table(一般首次运行添加该参数)
选项会自动创建 percona.checksums 表
生产环境实验
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate-check-only --databases="newyaoyigou" --tables="test" h=主库地址,u=用户名,p=密码,P=3306
Differences on iZ2ze7zwb4pqs3d5xh3vwzZ
TABLE CHUNK CNT_DIFF CRC_DIFF CHUNK_INDEX LOWER_BOUNDARY UPPER_BOUNDARY
newyaoyigou.test 1 -1 1