如何将Mariadb Galera Cluster中的节点转换为slave

由于架构变化需要将Mariadb Galera Cluster中的一个节点转移为slave,步骤如下:
  1. 正常停止集群中的待转换节点
  2. 找到该节点最后一个事务的xid值
  3. 查找候选master上Xid(第2步中找到的xid)所在binlog中下一个事务开始的位置
  4. change master启动slave


【实验】

1.正常停止Mariadb Galera Cluster集群中的待转换节点

2.查找待转换为slave节点最后一个binlog文件的Xid
 方法一:查找binlog最新的xid

mysqlbinlog  --no-defaults --base64-output=decode-rows -vv mysql-bin.000012|grep "^# at"|tail -3
# at 922
# at 959
# at 986


mysqlbinlog  --no-defaults --base64-output=decode-rows -vv  mysql-bin.000012 --start-position=922|grep Xid
server id 453346  end_log_pos 986      Xid = 1095452


方法二:过滤错误日志中New cluster view 获取最后一个view中的gtid值。就是我们需要的xid
grep "New cluster view" mariadb.log |awk  -F: 'END { print $1":"$2":"$3 $6":"$7}'
[Note] WSREP 874d8e7e-5980-11e8-8c23-83493ba049c2:1095452, view# -1

3.查找候选master上Xid(第2步中找到的xid)所在binlog中下一个事务开始的位置
 候选master节点log_slave_updates必须为ON
mysqlbinlog  --no-defaults --base64-output=decode-rows -vv  mysql-bin.000006|grep "Xid = 1095452" -a10
# at 1698
#180529 14:48:59 server id 453346  end_log_pos 1725     Xid = 1095452
COMMIT/*!*/;
# at 1725
Xid为1095452事务,下一个事务的开始位置为1725


4.change master
CHANGE MASTER TO
  MASTER_HOST='192.x.x.x',
  MASTER_USER='root',
  MASTER_PASSWORD='123',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000006',
  MASTER_LOG_POS=2039;


5.start slave

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值