2

我很难设置我的复制服务器。是否有任何程序(OS X、Windows、Linux 或 PHP 没问题)可以让我监控和解决复制问题?(顺便说一句,对于下面的人,我一直在这里这里这里这里讨论这个问题)

我的生产数据库有几兆的大小并且还在增长。每次数据库复制停止并且数据库不可避免地开始不同步时,我都会感到畏缩。我上次从转储重新同步花了将近 4 个小时来回!

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

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

如果有某种方法可以密切监视正在发生的事情并可能让软件处理它,我会喜欢它。我什至全神贯注于服务公司,它们可以帮助我更好地监控我的数据。或者完全镜像的另一种方式。

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

4

2 回答 2

3

为了监控服务器,我们使用Maatkit 的免费工具......简单而高效。

二进制复制在 5.1 中可用,所以我猜你有一些想法。我们仍然使用 5.0,它运行良好,但当然我们也遇到了一些问题。

我们在前面使用带有 MySql 代理的 Master-Master 复制作为负载均衡器,并防止它出现错误:

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

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

于 2008-08-29T22:49:44.140 回答
0

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

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

mysql错误描述

于 2008-09-05T14:33:01.997 回答