【问题标题】:How do I oversee my MySQL replication server?如何监督我的 MySQL 复制服务器?
【发布时间】:2010-09-07 07:37:30
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: mysql mysql-management


    【解决方案1】:

    我们使用免费的tools from Maatkit 来监控服务器...简单而高效。

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      关于错误,您是否在您的从站上使用内存表?我问这个是因为我们唯一一次遇到很多这些错误,它们是由最新版本的 mysql 中的错误引起的。 'Delete From Table Where Field = Value' 将仅删除内存表中的一行,即使它们位于多行。

      mysql bug descritpion

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        • 2016-02-12
        相关资源
        最近更新 更多