MySQL主从同步校验工具_pt-table-checksum

Posted shishitongbu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL主从同步校验工具_pt-table-checksum相关的知识,希望对你有一定的参考价值。

注意事项

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表可以看到主从库的检验信息。


技术图片

以上是关于MySQL主从同步校验工具_pt-table-checksum的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从同步校验工具_pt-table-checksum

MySQL主从同步校验工具_pt-table-checksum

MySQL主从同步校验与重新同步

主从校验工具pt-table-checksum和pt-table-sync工作原理

mysql主从一致性校验工具-pt

MySQL pt-table-checksum及pt-table-sync校验及修复主从一致性