一个从,多个主MySql

Jon*_*nny 9 mysql replication

是否可以设置 MySql Replication 以让一个从站监听两个不同的主站?

Rol*_*DBA 3

根据设计,一个 mysqld 进程不能同时监听两个不同的 Master。

CHANGE MASTER TO 命令仅允许您将一个 Master 设置为读取源。

为了模拟这一点,您必须以编程方式在两个大师之间交替。你是怎样做的 ?

我在 StackOverflow 中描述了如何将从站手动连接到不同的主站,其中每个主站是一台笔记本电脑,而从站是一台中央计算机。

这是基本想法

  • 大师M1
  • 大师M2
  • 从机S1

像这样设置 M1 到 S1 然后 M2 到 S1 的复制

  • 1) 让 S1 以 M1 作为源运行 CHANGE MASTER TO
  • 2)启动从机;
  • 3) 运行复制一段时间
  • 4)停止从机;
  • 5) 让 S1 以 M2 作为源运行 CHANGE MASTER TO
  • 6)启动从机;
  • 7) 运行复制一段时间
  • 8)停止从机;
  • 9) 返回步骤 1

每次从一个 Master 切换到另一个 Master 时,您必须记录以下两个值:SHOW SLAVE STATUS\G

  1. 中继主日志文件
  2. Exec_Master_Log_Pos

这两个值代表来自 Master 的最后一条 SQL 语句,并且是下一个在 Slave 上执行的 SQL 语句。

有一个主要注意事项:只要 M1 和 M2 正在更新互斥的数据库,该算法就应该没问题。

不管你信不信,我早在 2011 年 5 月就在 ServerFault 中提出了这样的问题。我实际上根据《高性能 MySQL》一书解释了如何使用 BLACKHOLE 存储引擎来模拟真正的多主/单从。