pt工具校验主从数据一致性之dsns方式
mysql主从数据一致性校验,常用的方法是Percona-Toolkit的组件pt-table-checksum,这东西怎么用网上一大堆,就不啰嗦了。主要说一下通过dsns方式发现从库的一种方式。
pt工具连接到主库后,默认是是通过show processlist,通过主从复制线程获取从库的信息,进而连接从库的。默认方式连接从库是有他的局限性的,以下场景没法使用:
场景:
1.非标准端口3306,或主从端口不一致;
2.多源复制搭建的主从;
3.阿里云、腾讯云上的主从关系,无法直接获取从库的信息;
通过dsns方式连接从库,只需要关注两点:
1.dsns表;
2.recursion-method参数项;
先说dsns表,表结构如下:
这个表可以建在任何服务器上,只要能被访问到就行,我习惯于将这样的工具放在总控服务器上,然后通过这台服务器管理所有mysql数据库。
+—-+———–+—————————————–+
| id | parent_id | dsn |
+—-+———–+—————————————–+
| 1 | 1 | h=192.168.11.73,u=chen,p=asd.123,P=3307 |
+—-+———–+—————————————–+
pt-table-checksum –host=’192.168.11.73′ –user=’check’ –password=’asd.123′ –port=3306
–create-replicate-table –databases=”jxbbs” –tables=”im_group_msg”
–no-check-binlog-format –recursion-method “dsn=D=pt,t=dsns,h=192.168.11.92,u=op_dba,p=vqR9cGbEwKNuvy4Z”
–recurse=1 –nocheck-replication-filters –replicate-check