完全完整的MySQL数据库复制?有想法吗?人们在做什么?

时间:2020-03-05 18:38:06  来源:igfitidea点击:

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

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

另一个最重要(也是令人讨厌的)重复出现的问题是,当由于某种原因我们在一端进行了一次重大的上载或者更新(或者重新启动)并不得不切断链接时,那么从MASTER加载数据不起作用,我有手动在一端进行转储并在另一端进行上传,如今完成一项艰巨的任务是移动价值约0.5 TB的数据。

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

解决方案

回答

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

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

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

回答

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

Documented in the 5.0.56, 5.1.24, and 6.0.5 changelogs as follows:

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

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