MySQL一主两从转级联复制【实操系列】

一主两从 转 级联复制 示意图如下

M  ---> S1
 \ 						====>      M ---> S1 ---> S2
  \ --> S2

如果有开启GTID操作起来方便多,GTID是唯一的,直接操作即可。

如果使用file_name、position可以使用如下办法(现在还没开启gtid真的是无力吐槽)

# 步骤1、 
# 现将S2的复制断开
S2: stop slave;
# 步骤2、 
S1: stop slave; 					# S1复制断开 
    show slave status \G;	# 得到当前S1同步到的M的文件和位置,
													# 注:S1并没有同步到此处,得到位置也是方便使用start slave UNTIL来对齐复制
													#     Master_Log_File: mysql-bin.001773
													# Read_Master_Log_Pos: 64750877
													#    Slave_IO_Running: Yes
													#   Slave_SQL_Running: Yes
													# Exec_Master_Log_Pos: 64750877
		show master status; 	# 若复制对齐后,则需要找到当前S1的filename、pos
		+------------------+----------+--------------+------------------+
		| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
		+------------------+----------+--------------+------------------+
		| mysql-bin.001773 | 62794811 |              |                  |
		+------------------+----------+--------------+------------------+
		select sleep(1);      
		start slave;					
		select sleep(1);
		show slave status\G		# 检查复制状态
# 步骤3、
# S2开放复制,追赶到S1相同的位置
S2: start slave UNTIL MASTER_LOG_FILE ="mysql-bin.001773",  MASTER_LOG_POS=64750877;、
	show slave status\G             #     Master_Log_File: mysql-bin.001773
							        # Read_Master_Log_Pos: 78398909
								    #    Slave_IO_Running: Yes
									#   Slave_SQL_Running: No	 追到既定位置就没用继续使用binlog文件了
									# Exec_Master_Log_Pos: 64750877   已经追赶到S1的位置了
# 步骤4、
S2: stop slave;
	change master to master_host='S1',master_log_file='mysql-bin.001773',master_log_pos=62794811; 执行S1的地址和filename、position
    start slave;
 

此刻,已经完成了转化到级联复制的步骤。有点蛋疼。GTID才是王道。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值