我有两台服务器,一台作为主机运行,另一台作为从机运行。我想检查天气,两个表都有相同的数据。我如何检查和确认这一点?该表有超过 2300 万行。
作为第一步,我尝试运行
CHECKSUM TABLE tbl;
但我在 60 秒后收到此错误:
ERROR 2013 (HY000): Lost connection to MySQL server during query
请指教。
我有两台服务器,一台作为主机运行,另一台作为从机运行。我想检查天气,两个表都有相同的数据。我如何检查和确认这一点?该表有超过 2300 万行。
作为第一步,我尝试运行
CHECKSUM TABLE tbl;
但我在 60 秒后收到此错误:
ERROR 2013 (HY000): Lost connection to MySQL server during query
请指教。
您也可以使用mk-table-checksum
,它是 Maatkit 实用程序的一部分。
如果您的表设置为主从,那么您不必进行此检查。两者之间的二进制同步可确保它们是相同的。不是吗?
如果您使用的是最新版本的 mysql 之一,您还应该查看表分区:http ://dev.mysql.com/doc/refman/5.1/en/partitioning.html这将大大加快访问速度像校验和。
我不知道它是否 100% 可能是您想要实现的,但至少一种验证复制状态的方法是实现某种简单的心跳机制,如High Performance MySQL一书中所述。
该方法适用于插入表中并每 20 秒验证一次的时间戳。连同SHOW SLAVE STATUS \G
返回的状态报告,您可以获得有关当前状态的一些准确统计信息。
您会看到从属服务器在主服务器之后有多少语句,或者复制错误等。如果没有错误或未决语句,您应该可以假设在时间 t 您的表是同步的。