我正在将 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 的主控。
答案1
binlogDB2
未更新从属更新。要以菊花链方式进行复制,必须log-slave-updates
在 my.conf 中进行设置。
答案2
答案3
是的 - 你可以菊花链式连接 mysql 服务器,你甚至可以制作一个循环复制其中有两台或更多台机器。只需记住在同时充当主服务器的从服务器上启用 binloging。
答案4
为什么不直接将 DB3 添加为新的从服务器,然后在您准备切换时将其提升为主服务器?这将为您带来拥有多个从服务器的临时额外好处,并减少或消除您的停机时间。