MySQL从站可以同时成为主站吗?


17

我正在将2个数据库服务器(主服务器和从服务器)迁移到两个新的数据库服务器(主服务器和从服务器)

DB1-主(生产)

DB2-从站(生产)

DB3-新手

DB4-新奴隶

目前,我将复制设置为:

DB1 -> DB2
DB3 -> DB4

为了将生产数据复制到新服务器上,我想将其“菊花链式”,使其看起来像这样:

DB1 -> DB2 -> DB3 -> DB4

这可能吗?当我show master status;在DB2(生产从属服务器)上运行时,binlog位置似乎从未改变:

+ ------------------ + ---------- + -------------- + ---- -------------- +
| 档案| 职位| Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ---------- + -------------- + ---- -------------- +
| mysql-bin.000020 | 98 | | |
+ ------------------ + ---------- + -------------- + ---- -------------- +

为什么在DB2上binlog的位置没有变化,我有些困惑,理想情况下,它将是DB3的主人。

Answers:



9

是的,这是可能的:)这被称为“带有中继从站的主站”复制,网络上有很多关于它的文档。

我建议您在这里查看官方文档。

顺便说一句,也请看一下这些幻灯片。他们对复制拓扑有一些提示。

希望这可以帮助。


3

是的-您可以菊花链连接mysql服务器,甚至可以在其中包含两台或更多台计算机的情况下进行循环复制。只需记住在同时充当主服务器的从属服务器上启用binloging。


1
循环复制非常脆弱。在大多数情况下,建议不要这样做。
华纳2010年

@Warner-这只是更复杂的复制设置的示例。
pQd

朋友不要让朋友以菊花链方式连接mysql服务器。
sjas

@sjas,除非他们有非常具体的理由这样做并了解破坏链条的潜在后果。
pQd

抱歉,仍然没有。复杂性总是会在以后困扰您。
sjas

0

对的,这是可能的。实际上,您需要一个新的DB2快照来构建DB3。届时,如果您有一个好的位置,则可以使用DB4以外的版本,也可以拍摄DB3的另一个快照。

不要忘记server_id为每个服务器设置唯一。

高性能MySQL是一本很棒的书,用于引用更高级的MySQL管理。


DB2当前只是一个从属服务器,但是它的binlog位置没有改变...您知道这是否正常吗?
mmattax

从属服务器(DB2)与主服务器保持最新,但是binlog位置没有改变,我应该检查什么?
mmattax

是的,我已经确认可以更改DB1上的数据并将其复制到DB2,但是DB2的binlog位置是相同的。
mmattax

我认为DB @没有记录从属更新的,因此为什么的位置并没有改变:dev.mysql.com/doc/refman/5.1/en/...
mmattax

0

为什么不准备将DB3添加为新的从属服务器,然后在准备好进行切换时将其升级为主服务器?这将为您带来拥有多个从站的临时额外好处,并减少或消除停机时间。


那正是我在做的...
mmattax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.