MYSQL架构调整的常用方式

一、不同级别挂载为同一级别

低级从库往上级挂载比较简单,只要上一级停止复制线程,确保没有数据写入,记录此时被挂载的主库位点,按此位点change即可。

如下:把192.168.1.4提升为1级从库,挂载到192.168.1.1下

操作步骤:

步骤主库一级从库二级从库
IP192.168.1.1192.168.1.3192.168.1.4
1 

停止1级从库的复制线程

stop slave;

 
2 

记录此时主库位置

show slave status\G

Master_Log_File: 主库binlog

Read_Master_Log_Pos: 主库Pos

 
3  确保从库没有延迟

show slave status\G

Seconds_Behind_Master: 0

4  

如没有延迟执行

change master to master_user='XXX',master_password='XXX',master_host='192.168.1.1',MASTER_LOG_FILE='主库binlog', MASTER_LOG_POS=主库Pos;

5  start slave;
6 start slave; 
7 

查看状态

show slave status\G

查看状态

show slave status\G

 

二、同级别挂载为不同级别

将1级从库挂到同级从库下,变成2级从库,此时需要用到start slave until功能,且需注意先停止摘掉的那台从库。

 

如下:把192.168.1.4挂载到192.168.1.3下,变成2级从库

操作步骤:

步骤主库一级从库二级从库
IP192.168.1.1192.168.1.3192.168.1.4
1  

先停止需要变成2级从库那台复制线程

stop slave;

2 

再停止目标1级从库的复制线程

stop slave;

 
3 

记录此时执行到的主库位置

show slave status\G

Master_Log_File: 主库binlog

Read_Master_Log_Pos:主库Pos

 
4  

追到上一步主库位置

start slave until MASTER_LOG_FILE='主库binlog', MASTER_LOG_POS=主库Pos;

5 记录自身binlog位置

show master status\G

File: 1级从库binlog

Position: 1级从库Pos

 
6  

执行

change master to  master_user='XXX',master_password='XXX',master_host='192.168.1.3',MASTER_LOG_FILE='1级从库binlog',  MASTER_LOG_POS=1级从库Pos;

7  start slave;
8  

查看状态

show slave status\G

9 start slave; 
10 

查看状态

show slave status\G

 

先停止摘掉的那台从库,再停止目标从库复制,是为了确保在一直有写入的情况下,不会造成数据遗漏,保证目标库数据比自身数据要新。都断开复制后,利用start slave until MASTER_LOG_FILE='xxx', MASTER_LOG_POS=xxx;来实现跟目标数据一致,并且此时两边都没有写入,再正常change master即可。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值