我希望能够编辑现有复制的拓扑,这可能吗?
例如,如果我有一个星型拓扑,我想编辑它,使它成为一个环。我怎么能这么做?
我在想,也许首先我需要重置所有的主程序和服务器。如果我有以下拓扑:
a -> b
b -> c
c -> a我想把它转换成:
a -> c
b -> c我尝试了change master,但是它没有很好地工作,因为旧的拓扑仍然存在。
发布于 2013-01-21 23:08:10
严格根据您的问题,您想要的拓扑是不可能的。为什么?
以下是您介绍的内容(称为Topology#1)
a -> b
b -> c
c -> a你希望它成为(叫它Topology#2)
a -> c
b -> c由于ServerC不能使用多个主机/端口组合来执行CHANGE MASTER TO,所以Topology#2在机械上是不可能的。
我已就为何不可能提供资讯科技的问题,提出了这方面的问题:
Feb 03, 2012:一个从、多个主MySqlMay 15, 2011:在mySQL DB中可以使用多主单从吗?(我的服务器故障帖子)现在,您想要将Topology#1转换成这样(称为Topology#3)
a -> b
a -> c这是很有可能的。以下是几个步骤:
( STEP01)在ServerB上运行STOP SLAVE;
( STEP02)在ServerC上,运行SHOW SLAVE STATUS\G并检查以确保Exec_Master_Log_Pos不再更新。
( STEP03)在ServerB上运行SHOW SLAVE STATUS\G。
STEP04)从STEP03记录Relay_Master_Log_File (称为RMLF)和Exec_Master_Log_Pos (称为EMLP) (例如,让RLMF='mysql-bin.000345‘和EMLP=98765)。
STEP05)在ServerC上运行以下命令(使用来自STEP04的RMLF和EMLP ):
STOP SLAVE;
CHANGE MASTER TO
master_log_file='mysql-bin.000345',
master_log_pos=98765;`
START SLAVE;( STEP07)在ServerB上运行START SLAVE;
( STEP08)在ServerA上运行STOP SLAVE;
接下来,让所有的插入、更新和删除只发生在ServerA上。
发布于 2013-01-21 18:41:56
可以使用MySQL复制设置环形拓扑,但通常不是一个好主意。环形拓扑表示多主复制,但异步复制不能很好地工作(事务是在主服务器上提交的,然后才提供给从服务器)。如果同时对两个主服务器上的相同记录进行更新,则会丢失数据完整性。当您有多个主模块时,该问题的典型解决方案是分割数据,以便每个主程序只写入特定的数据区域。
处理此问题的另一种方法是查看Galera星系团或Percona XtraDB簇之类的解决方案。这些解决方案使用MySQL,但采用了自己的复制技术--一种是同步的,而不是异步的。
https://dba.stackexchange.com/questions/33257
复制相似问题