原始问题: 我有多个服务器都需要充当主服务器,好像一个服务器出现故障,下一个服务器启动并接管。我只是想知道复制的最佳方式是什么。所有服务器都在不同的数据中心。
问题
更新的问题: 我们在世界各地的不同数据中心都有服务器,每台服务器都需要访问通常位于本地主机上的数据库。
每台服务器都需要能够更新数据库,每台服务器几乎都是其他服务器的镜像。这些都通过一个服务器(超级主机)保持同步,所有服务器都可以与之通信。
所有的服务器只和supermaster 通信,它们不知道任何其他服务器。超级主机本身就是其他服务器的镜像,只是附加了同步所有服务器的服务。
有时supermaster因为各种原因离线;发生这种情况时,其他服务器将照常进行,包括读取和写入数据。当超级主机恢复时,它开始同步过程并整理并解决其他服务器之间的冲突,完成后所有服务器都有数据的镜像并且全部“同步”。
因此,在对这个问题进行更多思考之后,我的问题是;
任何帮助深表感谢。
您需要组合四 (4) 个选项
为了不重新发明轮子,请阅读我过去关于这个主题的帖子
任何网络延迟都会影响二进制日志的收集,并且通过网络传送条目可能是瓶颈。使用MySQL 5.5 的半同步复制可以让您调整 MySQL Heartbeat 特性,以最大限度地减少由于任何显着的网络延迟而导致的复制丢失。
如果你有多个master,循环复制是必须的。有许多产品可以提供循环复制,例如 mysql-mmm(在评论中提到),它在单个数据中心的范围内非常有用。这只是您的难题之一,因为除了循环复制之外,还必须包含四 (4) 件事:
这可能不是您的完整答案,但这些选项可以提供您可以在不同场景中尝试的想法。例如,在星型拓扑中,您可以执行以下操作:
情景#1
场景#2
场景#3
就可能性而言,这取决于您的想象力和部门预算。
MySQL 和 DRBD 的链接
用于磁盘级冗余的 DRBD 和用于 DBVIP 自动故障转移的 ucarp
| 归档时间: |
|
| 查看次数: |
20107 次 |
| 最近记录: |