如何将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

你可能感兴趣的:(MariaDB,Galera,Cluster)