我正在设置一个奴隶并做一些表格校验和来检查事情是否正常,然后再让它们生效。
在将奴隶同步到停止点并与预先存在的奴隶进行比较后,我在奴隶上做了一个本地 mysql 校验和表。
两张桌子不同。为了深入研究,我运行了 pt-table-checksum,它报告新旧奴隶没有差异并且行数相同。
为了获得第三种意见,我做了一个 select * into outfile 由 PK 排序并在输出上运行 md5sum。这两者也很匹配。
一个明显的区别是较新的从属运行的是较新的版本(5.5.34 与 5.5.29);两个 percona 构建。
这个版本的差异是否会导致校验和的差异?如果是这样,这似乎很奇怪,只有两张桌子有几十个。
别担心,你的情况不是唯一的。几年前我遇到了与mk-table-checksum完全相同的问题(请参阅我
Nov 16, 2012
的帖子Maatkit 在一个表中显示 MySQL 复制错误,但不会修复它)这是CHECKSUM TABLE 上的 MySQL 文档中令人恐惧的东西
我在 2012 年 1 月之前提到了这个警告:如何检查 mysql 中表的一致性
有时,我只是喜欢直接使用带有选项的 mk-table-sync(抱歉 Percona,我很老土)
--print
并告诉我 SQL 差异。正如 MySQL 文档所说,由于 VARCHAR 对齐或 ROW FORMAT 可能存在差异。如果 mk-table-sync/pt-table-sync 坚持没有更改,您可以在 99.9% 的时间内信任它。如果你不信任它,mysqldump 表并重新加载它。校验和可能不会再次匹配。