注意事项
master和slave必须是同步状态
master show slave hosts;
slave show slave status\G;看看是否同步成功
安装
yum install perl perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL
and?
yum -y ?install perl-Time-HiRes
and?
yum install perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes -y
wget www.percona.com/downloads/percona-toolkit/2.2.2/percona-toolkit-2.2.2.tar.gz
tar xvf percona-toolkit-2.2.2.tar.gz
cd percona-toolkit-2.2.2
perl Makefile.PL
make && make install
检查命令
pt-table-checksum --nocheck-replication-filters --replicate=test.checksum --databases=edu h=192.168.1.206,u=root,p=yixq.321 --empty-replicate-table --create-replicate-table
参数说明:
TS ? ? ? ? ? ?:完成检查的时间。
ERRORS ? ? ? ?:检查时候发生错误和警告的数量。
DIFFS ? ? ? ? :0表示一致,1表示不一致。当指定--no-replicate-check时,会一直为0,当指定--replicate-check-only会显示不同的信息。
ROWS ? ? ? ? ?:表的行数。
CHUNKS ? ? ? ?:被划分到表中的块的数目。
SKIPPED ? ? ? :由于错误或警告或过大,则跳过块的数目。
TIME ? ? ? ? ?:执行的时间。
TABLE ? ? ? ? :被检查的表名。
参数意义:
--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format ? ? ?: 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。
--replicate=? :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。
--databases=? :指定需要被检查的数据库,多个则用逗号隔开。
--tables=? ? ?:指定需要被检查的表,多个用逗号隔开
h=127.0.0.1 ? ?:Master的地址
u=root ? ? ? ? :用户名
p=123456 ? ? ? :密码
P=3306 ? ? ? ? :端口
更多的参数请见官网,上面指出来的是常用的,对该场景够用的参数。
通过DIFFS是1可以看出主从的表数据不一致。通过查看从库上的test.checksum表可以看到主从库的检验信息。
原文地址:https://www.cnblogs.com/sqlservertongbu/p/11013627.html