2008-08-29 63 views
2

我在设置我的复制服务器时遇到了困难。有没有任何程序(OS X,Win,Linux或PHP没有问题),让我监视和解决复制问题? (顺便说一句,对于那些-uhm-下面,我一直在这个问题上herehereherehere。要么我要去对这个错误的方式或者我必须非常厚)mysql软件:任何建议来监督我的mysql复制服务器?

我的生产数据库是几个兆在规模和增长。每当数据库复制停止,数据库不可避免地开始滑落,我就会畏缩不前。我的最后一次重新同步从转储花了近4个小时往返!

一如往常,甚至同步后,我碰到这种表演停止的错误“:

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

我会喜欢它,如果有一些方法,以密切监测怎么回事,也许让软件。对付它,我甚至全部的耳朵服务公司可以帮我监视我的数据好或另一种方式完全反映

编辑:。要通过我以前的问题,我发现this这帮助很大。我仍然对监控解决方案耳目一新。

欢呼声,

/MP

回答

3

要监视我们使用免费的tools from Maatkit ......简单而有效的服务器。

二进制复制在5.1中可用,所以我猜你已经有了一些球。我们仍然使用5.0,它工作正常,但我们当然有我们的问题。

我们使用一个主 - 主复制与MySQL代理在前面的负载均衡,并防止它有错误:

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

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

0

我们使用mysql复制将数据复制到接近30台服务器。我们用nagios监视它们。您可以检查复制状态并使用事件处理程序通过'SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;启动奴隶;'。这将修复错误,但是您将失去导致错误的插入。

关于这个错误,你在你的奴隶上使用内存表吗?我问这是因为我们唯一一次遇到很多这些错误,他们是由mysql的最新版本中的错误引起的。 '从表中删除字段=值'将只删除内存表中的一行,即使它们在多行中也是如此。

mysql bug descritpion