我已经在mysql中设置了主从复制,并且为了确保我知道数据是否开始不同步,我创建了一个脚本:
但在一些桌子上,我得到了不同的校验和。因此,我下载了这两个表,并创建了另一个脚本来查找它们的不同之处。没什么不一样的!他们是一样的。
我只在有浮动变量的表上得到不同的校验和,因此我怀疑这与此有关。
我确实安装了稍微不同版本的mysql,这会导致这种情况吗?
+-------------------------+-----------------------------+
| Variable_name | Value |
+-------------------------+-----------------------------+
| innodb_version | 5.5.34 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.34-0ubuntu0.13.04.1-log |
| version_comment | (Ubuntu) |
| version_compile_machine | x86_64 |
| version_compile_os | debian-linux-gnu |
+-------------------------+-----------------------------+
+-------------------------+-----------------------------+
| Variable_name | Value |
+-------------------------+-----------------------------+
| innodb_version | 5.5.37 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.37-0ubuntu0.14.04.1-log |
| version_comment | (Ubuntu) |
| version_compile_machine | x86_64 |
| version_compile_os | debian-linux-gnu |
+-------------------------+-----------------------------+你们谁知道这可能是什么原因?
发布于 2014-07-17 14:12:39
有更好的方法来检查主人和它的奴隶是否同步。
在主表上运行pt-table-校验和。
然后,如果它显示了一些表是不同的,使用这个脚本来查看确切的区别在哪里。http://bazaar.launchpad.net/~akuzminsky/+junk/stats-scripts/view/head:/compare_tables.sh
./compare_tables.sh master_ip slave_ip database table发布于 2014-07-17 15:40:15
您可能会遇到一些问题,不是FLOAT,而是VARCHAR。为什么?根据校验和表上的MySQL文档的说法:
校验和值取决于表行格式。如果行格式更改,校验和也会更改。例如,VARCHAR的存储格式在MySQL 4.1和5.0之间更改,因此如果将4.1表升级到VARCHAR 5.0,校验和值可能会更改。如果两个表的校验和不同,那么几乎可以肯定表在某种程度上是不同的。但是,由于校验和表使用的散列函数不能保证不发生冲突,所以两个不相同的表很可能产生相同的校验和。
我以前写过关于这种现象的文章。
Mar 14, 2014:-校验和不存在差异.本机校验和表表示存在差异.Nov 16, 2012:Maatkit在一个表中显示MySQL复制错误,但不会修复它Jan 17, 2012:如何检查mysql中表的一致性请注意For example, the storage format for VARCHAR changed between MySQL 4.1 and 5.0。这可能意味着还有其他示例(场景),其中FLOAT或某些其他数据类型可能与CHECKSUM TABLE有问题。如果问题表中有FLOAT列而没有VARCHAR列,那么FLOAT变量可能会受到此问题的影响。
您需要执行以下操作
如果再次出现差异,则问题表具有带有CHECKSUM TABLE问题的数据类型。你必须做两件事之一
有一些罕见的时间(< 0.01%),CHECKSUM TABLE没有产生一致的结果。因此,如果使用工具同步表,则可能需要尽职调查。对于事后仍未同步的所有表,无论数据复制后的校验和值如何,都必须采用复制数据的方法。
https://dba.stackexchange.com/questions/71746
复制相似问题