mysql软件:有什么建议来监督我的mysql复制服务器?

时间:2020-03-05 18:45:16  来源:igfitidea点击:

我在设置复制服务器时遇到了困难。是否有任何程序(OS X,Win,Linux或者php没问题)可以监视和解决复制问题? (顺便说一句,对于那些-uhmfollowing,我在这里,这里,这里和这里一直在讨论这个问题。或者我正在以错误的方式进行操作,或者我必须非常胖)

我的生产数据库的大小在不断增长。每次数据库复制停止并且数据库不可避免地开始滑出同步时,都会出现这种情况。我上次从转储进行的重新同步花费了将近4个小时的往返时间!

与往常一样,即使同步后,我也会遇到这种显示停止错误":

Error 'Duplicate entry '252440' for key 1' on query.

如果有某种方法可以密切监视正在发生的事情,也许让软件来处理它,我将非常乐意。我什至为服务公司着迷,这可能会帮助我更好地监控数据。或者完全镜像的另一种方法。

编辑:经过我以前的问题,我发现这很有帮助。我仍然全神贯注于监视解决方案。

干杯,

/ mp

解决方案

回答

为了监视服务器,我们使用了Maatkit提供的免费工具...简单而有效。

二进制复制在5.1中可用,所以我想我们有一些地方。我们仍然使用5.0,它可以正常工作,但是当然我们也遇到了一些问题。

我们将Master-Master复制和MySql Proxy用作前端的负载均衡器,以防止出现错误:

  • 我们删除了所有唯一索引
  • 对于确实需要唯一约束的少数情况,我们确保使用REPLACE而不是INSERT(可以使用MySql Proxy来保护正确使用...甚至可以重写查询)
  • 定期执行密集报告的计划脚本始终访问同一服务器(而不是负载平衡器)...,以便安全地复制危险的操作

是的,我知道这听起来很简单而且很愚蠢,但是它解决了我们遇到的所有问题的95%。

回答

我们使用mysql复制将数据复制到接近30台服务器。我们用nagios监视他们。我们可能可以检查复制状态,并使用事件处理程序以'SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;重新启动它;启动从属;'。这样可以修复错误,但是我们将丢失导致错误的插入内容。

关于该错误,我们是否在从属服务器上使用内存表?我之所以这样问是因为,我们只有一次遇到了很多这样的错误,它们都是由mysql最新版本中的错误引起的。 "删除表中的字段=值所在的表"将仅删除内存表中的一行,即使它们在多行中也是如此。

MySQL错误描述