3

我有两台服务器,一台作为主机运行,另一台作为从机运行。我想检查天气,两个表都有相同的数据。我如何检查和确认这一点?该表有超过 2300 万行。

作为第一步,我尝试运行 CHECKSUM TABLE tbl;

但我在 60 秒后收到此错误: ERROR 2013 (HY000): Lost connection to MySQL server during query

请指教。

4

3 回答 3

2

您也可以使用mk-table-checksum,它是 Maatkit 实用程序的一部分。

http://www.maatkit.org/doc/mk-table-checksum.html

于 2011-02-07T11:54:27.027 回答
1

如果您的表设置为主从,那么您不必进行此检查。两者之间的二进制同步可确保它们是相同的。不是吗?

如果您使用的是最新版本的 mysql 之一,您还应该查看表分区:http ://dev.mysql.com/doc/refman/5.1/en/partitioning.html这将大大加快访问速度像校验和。

于 2011-02-07T11:37:55.293 回答
0

我不知道它是否 100% 可能是您想要实现的,但至少一种验证复制状态的方法是实现某种简单的心跳机制,如High Performance MySQL一书中所述。

该方法适用于插入表中并每 20 秒验证一次的时间戳。连同SHOW SLAVE STATUS \G返回的状态报告,您可以获得有关当前状态的一些准确统计信息。

您会看到从属服务器在主服务器之后有多少语句,或者复制错误等。如果没有错误或未决语句,您应该可以假设在时间 t 您的表是同步的。

于 2011-02-07T11:43:33.677 回答