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

来源:互联网 发布:90后网络行为分析 编辑:程序博客网 时间:2024/06/04 19:12
注意事项
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表可以看到主从库的检验信息。



0 0