MySQL主从数据校验pt-table-checksum

1、简介

pt-table-checksum-验证MySQL主从复制的完整性。

2、pt-osc的工作原理

1.pt-table-checksum工具专注于一个目的,在一主节点上执行校验和查询,并且这些查询流经复制以在副本服务器上重新执行。

2.一次只处理一张表,所以无论服务器有多大,pt-table-checksum都可以很好的执行

3.按照数据块来计算校验和,使用单个REPLACE..SELECT查询对每个块进行校验和,从而实现每个块计算耗时的目标时间默认为0.5秒。

4.工具连续监视从节点。如果副本在复制中落后太远,则pt-table-checksum会暂停,如果任何副本有错误或复制停止,则pt-table-checksum会暂停并等待。



3、使用说明

语法

pt-table-checksum [OPTIONS] [DSN]

pt-table-checksum常用参数

pt-table-checksum --help

常用参数:

--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format :不检查复制的binlog模式。
--replicate-check-only :只显示不同步的信息。
--replicate:把checksum的信息写入到指定表中。
--databases:指定需要被检查的数据库,多个则用逗号隔开。
--table:指定需要被检查的表,多个用逗号隔开
--host:Master的地址
--user:用户名
--password:密码
--port:端口

4、示例

1 校验主从

pt-table-checksum --replicate=test.checksums --nocheck-binlog-format --nocheck-plan --nocheck-replication-filters --recursion-method=processlist --databases=test -u'test' -p'test' -hlocalhost

2 校验主从使用dsn

CREATE TABLE `dsns` (`id` int(11) NOT NULL AUTO_INCREMENT,`parent_id` int(11) DEFAULT NULL,`dsn` varchar(255) NOT NULL,PRIMARY KEY (`id`));
INSERT INTO dsns (parent_id,dsn) values(1,'h=192.168.136.130,u=test,p=test,P=3307');
pt-table-checksum --replicate=test.checksums --nocheck-binlog-format --nocheck-plan --nocheck-replication-filters --recursion-method dsn=D=test,t=dsns --databases=test -u'test' -p'test' -hlocalhost
举报
评论 0