传统复制的复制结构之间转换

本文介绍如何将MySQL的复制结构从A到B再到C转换为A到B和A到C两个独立的复制结构,并详细说明了操作步骤及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来写一个传统复制的复制结构之间的转换问题。

a-->b
a-->c
转换成a-->b-->c
a:create table i_hgr(id int);
此时b和c上都有了表 i_hgr
先在b和c删除表i_hgr --> b,c:drop table i_hgr;
a:drop table i_hgr;
此时复制出错,而b和c停在一个位置上
在b上获取position位置,在c上change master to ... master_log_file='show b.master status.log_file', 
master_log_pos='show b.master status.log_pos'
c:start slave;
这时完成 了b-->c 复制

接下来修复a-->b复制
b;create table i_hgr(id int);
b:start sql_thread;
完成a-->b-->c复制结构。

 

如果想把a-->b--c 再还原回a--b,a--c的复制结构
b:stop slave;
此时b和c同步的位置一样
注:判断c和b是否一样,去b 上show master status;
b.show master status.file=c.master_log_file
b.show master status.position=c.read_master_log_pos
另外:
假如b:show master status;
master_log_file,read_master_log_pos与relay_master_log_file,exec_master_log_pos不相等时,那要取哪个呢?
答案是用relay_master_log_file和exec_master_log_pos
原因是要选执行到的位置,即sql_thread
接下来在c 上 change master to .... master_log_file='xxx',master_log_pos=xxx;
c;start slave;
b上直接start slave
b;start slave;
完成了a-->b,a-->c的复制 结构。

转载于:https://www.cnblogs.com/hmysql/p/8998142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值