细节
-
错误
-
状态: Done">完成
-
媒介
-
解决方法: 无法解决
-
3.0.4
-
没有一个
-
没有一个
描述
我有个旧案要查我看到,pt-table-checksum不能验证同一表,在主和从上,他们有不同的值的一些te行,尽管两个表有相同的行数。这并不难得到,我想知道是否有一种方法可以更好地检查数据的完全一致性超出行数(我们不能真的说一个表是100%一致的主和从,如果count()都是一样的,IMHO)。
让我们考虑一个简单的例子:
select i,j from foo01;+---+------+ | 我| j | +---+------+ | 1 | | | 2 | b | | 3 | c | | 4 | d | | 5 | e | +---+------+ 5行集(0.00秒)box02 (foo) > select * from foo.foo01;+---+------+ | 我| j | +---+------+ | 1 | | | 2 | b | | 3 | c | | 4 |女| | 5 | g | +---+------+ 5行组(0.00秒)(电子邮件保护)~]# pt-table-checksum——递归方法=dsn=“h = 192.168.50.11 D =比安奇,t = dsn”——复制比安奇。checksum——no-check-binlog-format——no-version check——no-check-replication-filters——databases foo——tables foo01 -c j TS ERRORS DIFFS ROWS CHUNKS skip TIME TABLE 08-04T20:53:34 0 0 5 1 0 0.016 foo.foo01
上面,我试图强制它只检查这个以逗号分隔的列列表,因为我的意图实际上只是检查这个表,而不是其他表。
顺便说一下,在运行下面的简单校验和后,我验证了校验和表和…
Box02 [foo]> select db,tbl,this_cnt,master_cnt,this_crc,master_crc from bianchi。校验和\G ***************************Row *************************** db: foo tbl: foo01 this_cnt: 5 master_cnt: 5 this_crc: 2e243fc8 master_crc: 2e243fc8 1 Row in set (0.00 sec)
关于这个案子有什么要分享的吗?非常感谢!
当然,在这种情况下,在这种情况下,我发现这种情况发生了,一个好的解决方案将是检查哪个数据集是最准确的,与客户合作,并同意我们需要合并数据,甚至使用pt-table-sync -sync-to-master,但是,如果表校验和能够在某种程度上比较,例如每一行CRC32,这将是一个好东西。