跨地域不同服务器的 MySQL 复制

Ham*_*ner 11 mysql mysql-replication ruby-on-rails

我的组织一直在研究如何在地理上分布我们的服务器,同时保持备份非常最新,并在理想情况下分散负载。

我首先想到的是 MySQL 上的 Rails。写入速率不太高(文章/评论每分钟不到 1 条,尽管有些有大媒体附件)。

所以,

  • MySQL 复制在广域网中运行良好吗?
  • 连接(或从服务器)断开是否意味着需要手动干预(一旦两台服务器可以再次相互通信)或者恢复是自动的?
  • 如果主人消失了,从奴隶变成主人需要什么?是否有标准脚本/工具来帮助管理?
  • 任何其他问题等?

Ton*_*yer 6

我们在几个欧洲国家/地区使用跨数据中心的复制(因此它们彼此不在世界各地,但肯定不是本地的)并且它可以正常工作。

如果可能,复制将自动重新启动。如果查询有问题(例如,数据库存在于 master 而不是 slave,并且查询使用它),则默认情况下需要手动更正(但您可以将其设置为忽略此类错误)。如果数据库是精确镜像,那么您永远不需要手动重新启动复制。

如果您有两台服务器并且主服务器消失了,那么要将从服务器变成“主服务器”,只需停止复制并更改您的代码(写入新的“主服务器”)。如果您有三个或更多服务器并且主服务器消失了,那么停止从服务器上的复制,将它们更改为使用新的主服务器,然后重新开始。如果它们不完全同步(取决于传输的数据量、服务器的繁忙程度、网络连接的质量等),那么您可能需要做更多的工作。 MySQL 文档的复制部分更详细地介绍了这一点

我建议您确保通过 SSL 进行复制(即将复制用户设置为需要 SSL 连接)。