我正在将2个DB服务器(Master&Slave)迁移到两个新的DB Server(Master和Slave)
DB1 – 主(生产)
DB2 – 从站(生产)
DB3 – 新主人
DB4 – 新的奴隶
目前我有复制设置为:
DB1 -> DB2 DB3 -> DB4
为了将生产数据复制到新的服务器上,我想把它“菊花链”,看起来像这样:
DB1 -> DB2 -> DB3 -> DB4
这可能吗? 当我运行show master status; 在DB2(生产奴隶)上binlog possition永远不会改变:
+ ------------------ + ---------- + -------------- + ---- -------------- + | 文件| 位置| Binlog_Do_DB | Binlog_Ignore_DB | + ------------------ + ---------- + -------------- + ---- -------------- + | mysql-bin.000020 | 98 | | | + ------------------ + ---------- + -------------- + ---- -------------- +
我有点困惑,为什么binlog位置在DB2上没有改变,理想情况下它将成为DB3的主人。
DB2上的binlog没有更新从属更新。 要菊花链复制,必须在my.conf中设置log-slave-updates 。
是的,这是可能的:)这就是所谓的“主继电器从属”复制,并在网上有大量的文件。
我build议你看看这里的官方文档。
顺便说一句,也看看这些幻灯片 。 他们对复制拓扑有一些提示。
希望这可以帮助。
是的 – 你可以菊花链式的连接mysql服务器,你甚至可以用两台或更多的机器进行循环复制 。 只记得启用也作为主人的奴隶binloging。
是的,这是可能的。 实际上,您需要DB2的新快照来构buildDB3。 在那个时候,如果你有一个好的位置,你可以使用比DB4还要快的DB3。
不要忘记为每个服务器设置唯一的server_id 。
高性能MySQL是一本介绍更高级MySQLpipe理的好书。
为什么不直接添加DB3作为新的slave,然后在准备好开关的时候将其升级为master? 这会给你带来多个奴隶的临时附加好处,并减less或消除你的停机时间。