使用一主一从的简单复制设置,如何确保从和主完全同步?
现在是的,它们都是从完全相同的映像开始的,复制正在工作,并且报告说一切正常,但是:*发生了停止复制时出现错误,然后必须停止复制,然后再恢复复制。*可能是在SLAVE上意外发生了更改,然后它与MASTER不再相同。*其他任何可能中断同步的场景。
虽然可以对这两个数据库做一个大的mysqldump并比较文件,但我感兴趣的是一种方法,它可以更容易地实现,也可以自动检查,以确保所有文件都是同步的。
谢谢
发布于 2012-02-11 16:04:48
你有没有试过Percona Toolkit (以前称为Maatkit)?您可以根据您的情况使用他们的pt-table-checksum工具之一。你也可以在他们的网站上查看其他工具。
pt-table-checksum
通过在主体上执行校验和查询来执行联机复制一致性检查,这会在与主体不一致的副本上生成不同的结果。可选的DSN指定主主机。如果发现任何差异,或者出现任何警告或错误,则该工具的退出状态为非零。
以下命令将连接到本地主机上的复制主机,对每个表进行校验和,并报告每个检测到的副本的结果:
发布于 2014-10-31 04:00:18
如果您的MySQL服务器版本为5.6.14或更高版本,则可以使用MySQL复制同步检查器。它包含在MySql服务器包中。专为支持全局事务标识符(GTID)并具有gtid_mode=ON的服务器而设计。
此实用程序允许您检查复制服务器的同步。它检查主设备和从设备之间或两个从设备之间的数据一致性。该实用程序报告丢失的对象和丢失的数据。该实用程序可以在活动复制拓扑上运行,并应用同步过程来检查数据。仍可检查复制未处于活动状态的服务器,但将跳过同步过程。在这种情况下,由用户手动同步服务器。
发布于 2015-04-16 03:10:41
您对看似健康的主/从复制设置的怀疑是正确的!我们运行得很好,突然收到来自check_mk的警报,说我们的主服务器上有一个数据库,而我们的从服务器上并不存在这个数据库。但是主状态和从状态的输出都很好!这有多让人不安?证明过程完整性的方法是使用校验和来验证数据。
我在网上看到了很多推荐pt-table-checksum的帖子。然而,事实证明,它的limitations太繁琐了,让我们感到不舒服。最重要的是,它需要甚至设置基于语句的复制(参见pt-table-checksum链接)。正如它在mysql 5.6 online documentation中所说的那样(对于基于行的复制...)“所有更改都可以复制。这是最安全的复制形式。”基于语句的复制还有其他缺点,这让我们的开发人员感到紧张,因为一些函数无法正确复制;请参阅文档中的列表。
我们已经遇到了使用基于语句的复制的主服务器和从服务器的问题,所以我们特别努力避免这种情况。
我们将尝试mysqlrplsync,它特别提到了它的"works independently of the binary log format (row, statement, or mixed)"。然而,它也提到,gtid-mode必须打开,它需要MySQL 5.6.14和更高版本...这意味着,我相信,与RHEL7/CentOS7一起交付的MySQL至少已经过时了。您需要获得MySQL社区版,这是留给读者but you can go here for the packages或here for the repos, including RHEL derivatives and Debian的练习。
https://stackoverflow.com/questions/9238624
复制相似问题