如何确保复制已发生

时间:2012-07-25 14:21:25

标签: mysql sql replication

我有2个5.0 MySQL服务器在Master-Master复制中运行,在刷新内存数据表示之前,我想确保两个数据库具有完全相同的内容。目前我正在使用以下逻辑

  1. 确保Slave_IO_Running&amp; <{p>

  2. Slave_SQL_Running设为是

  3. 一方面问题show master status;检索当前的主文件和位置

  4. 另一方面问show slave status;以检索Master_Log_File&amp;的价值。 Exec_Master_Log_Pos

  5. 然后我比较两边的值,如果第二边值相等或更高,我返回复制已经发生。

  6. 我知道master后面的字段可能是检查http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html的另一种方式,但它说在慢速网络上它可能不准确。

    我要问的主要原因是因为我一直在看到一个主人的位置可能是35000并且在奴隶上只有2000的情况,并且没有任何事情发生,好像显示从属状态所基于的目录没有及时更新。

    我开始根据percona的工具包理念设计一个包含校验和的替代验证方法。

    热烈欢迎任何想法和建议!

    干杯,

1 个答案:

答案 0 :(得分:0)

而不是Seconds_Behind_Master我使用Percona Toolkit中的pt-heartbeat来监控复制延迟。您可以使用该工具确认您的辅助母版是否已接近主版主,但如果您想比较两个母版的实际数据,我建议pt-table-checksum