20

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

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

另一个最重要(也是最烦人的)反复出现的问题是,当出于某种原因我们在一端进行重大上传或更新(或重新启动)并且必须切断链接时,从主站加载数据不起作用并且我有在一端手动转储并在另一端上传,如今移动大约 0.5 TB 的数据是一项艰巨的任务。

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

4

3 回答 3

2

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

于 2011-09-21T00:09:04.323 回答
0

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

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

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

于 2008-08-06T18:30:45.950 回答
0

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

于 2010-02-20T22:26:39.643 回答