- 论坛徽章:
- 0
|
本帖最后由 chinafenghao 于 2013-06-04 16:33 编辑
这几天大致的看了下,该工具描述的很不错,不过由于环境的限制,和理解上的偏差,对工具使用的方法不是特别清晰。
这里我大致描述下情况,建立的细节如果有回复我在给出,首先在单台服务器上搭建多实例主-从-从同步环境,导入相应数据。
通过pt-table-checksum -ucheck -h 'host' -pcheck -P 3307 -S /tmp/mysql.sock -d cdata --nocheck-replication-filters --nocheck-binlog-format --replicate=s_ck.checksums --recursion-method=dsn=h='host',D=s_ck,t=dsns
给出的一致性检查结果是
然后删除从数据库中的部分数据 重复执行以上命令:
得出的结果。
我实际删除了88行数据。但可以看到给出的显示只有1处。
按照官方手册中的用一下语句查找出主从之间的数据不一致的地方,显示为空。
SELECT db, tbl, SUM(this_cnt) AS total_rows, COUNT(*) AS chunks FROM s_ck.checksums WHERE ( master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)) GROUP BY db, tbl;
这里拿出一段介绍pt-table-checksum工作原理的内容
既然是计算表的散列值,然后对比该值,那应该是我对表改动后,会产生差异的。当上面缺只显示一个不同就不是很理解了。
有兴趣的朋友,或者已经对该工具有一定了解的,麻烦交流下。谢谢啊! |
评分
-
查看全部评分
|