【问题标题】:Full complete MySQL database replication? Ideas? What do people do?完全完整的 MySQL 数据库复制?想法?人们做什么?
【发布时间】:2008-08-06 18:24:42
【问题描述】:

目前我有两台运行 MySQL 的 Linux 服务器,一台位于我旁边的机架上,在 10 Mbit/s 上传管道(主服务器)下,另一台在几英里外的 3 Mbit/s 上传管道(镜像)。

我希望能够在两台服务器上连续复制数据,但遇到了几个障碍。其中之一是,在 MySQL 主/从配置下,时不时地,一些语句会丢弃(!),意思是;有些人登录到镜像 URL 看不到我知道在主服务器上的数据,反之亦然。假设这种情况每个月都会在一个有意义的数据块上发生一次,所以我可以忍受它并假设这是一个“丢失数据包”问题(即,天知道,但我们会补偿)。

另一个最重要(也是令人讨厌的)反复出现的问题是,当出于某种原因我们在一端进行主要上传或更新(或重新启动)并且必须sever 链接时,然后从 MASTER 加载数据不会' t 工作,我必须在一端手动转储并在另一端上传,如今移动大约 0.5 TB 的数据是一项艰巨的任务。

有这个软件吗?我知道 MySQL(“公司”)将此作为一项非常昂贵的服务(完整的数据库复制)提供。外面的人在做什么?它的结构方式是,我们运行自动故障转移,如果一台服务器未启动,则主 URL 只会解析到另一台服务器。

【问题讨论】:

标签: mysql oracle replication


【解决方案1】:

Percona 提供免费工具来检测主服务器和服务器之间的差异,并通过重新应用最小的更改使它们恢复同步。

【讨论】:

    【解决方案2】:

    GoldenGate 是一个非常好的解决方案,但可能与 MySQL 复制器一样昂贵。

    它基本上跟踪日志,并根据提交的内容应用更改。它们支持双向复制(一项艰巨的任务)以及异构系统之间的复制。

    由于它们通过处理日志文件工作,它们可以进行大规模分布式复制,而不会影响源机器的性能。

    【讨论】:

      【解决方案3】:

      我从未见过丢弃的语句,但有一个错误,网络问题可能导致中继日志损坏。确保在没有此修复的情况下不要运行 mysql。

      在 5.0.56、5.1.24 和 6.0.5 变更日志中记录如下:

         Network timeouts between the master and the slave could result
         in corruption of the relay log.
      

      http://bugs.mysql.com/bug.php?id=26489

      【讨论】:

        猜你喜欢
        • 2021-06-07
        • 1970-01-01
        • 2013-09-12
        • 2019-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-15
        相关资源
        最近更新 更多