gpt4 book ai didi

mysql - 是否可以使用 MySQL 进行 N-master => 1-slave 复制?

转载 作者:可可西里 更新时间:2023-11-01 06:42:24 25 4
gpt4 key购买 nike

我想在三台不同的服务器上制作一台专用的SLAVE机器用于三个数据库的数据复制。换句话说,我想做 Multiple Master => SIngle Slave 复制。

有什么方法可以做到这一点,尽可能简单吗?

谢谢!

最佳答案

MySQL(MySQL Cluster 除外)不支持多主机复制(一个从机拥有多个主机)。您可以执行循环(环)复制的主-主复制(描述 herehere )。

High performance MySQL 2nd edition作者描述了一种使用主-主复制和 Blackhole 的巧妙组合来模拟多主复制的方法。存储引擎(第 8 章复制 > 复制拓扑 > 自定义复制解决方案 > 模拟多主机复制 p. 373 - 375)。

它们展示了两种可能的拓扑结构:

使用两个 co-master(允许将 slave 的 master 从 Master 1 切换到 Master 2)

  • Master 1:托管 DB1 并从 Master 2 复制 DB2DB2 中所有表的存储引擎都更改为 Blackhole,这样数据就不会有效地存储在 Master 1 上。
  • Master 2:托管 DB2 并从 Master 1 复制 DB1DB1 中所有表的存储引擎都更改为 Blackhole,这样数据就不会有效地存储在 Master 2
  • Slave 1:从 Master 1Master 2 DB1 和 DB2 strong>(允许切换主人);结果是 Slave 1 复制了两个有效托管在两个不同主服务器上的数据库。

使用主链

  • Master 1: 仅托管 DB1
  • Master 2:托管 DB2 并从 Master 1 复制 DB1DB1 中所有表的存储引擎都更改为 Blackhole,这样数据就不会有效地存储在 Master 2
  • Slave 1:从 Master 2 复制 DB1DB2;结果是 Slave 1 复制了两个有效托管在两个不同主服务器上的数据库。

请注意,此设置仅允许您通过 Master 1 将更新发送到 DB1 并将对 DB2 的更新发送到 Master 2 。您不能将对任一表的更新发送给任意主机。

也许可以将所描述的解决方案与 hack 相结合,以实现真正的主-主复制(允许更新两个主服务器),该复制使用某种自动增量修改并被描述为 herehere .

关于mysql - 是否可以使用 MySQL 进行 N-master => 1-slave 复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com