Mysql-MHA之增加节点 测试

1 简介

MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

2 环境

172.17.0.6

node1

master

172.17.0.7

node2

slave1

172.17.0.8

node3

slave2

172.17.0.9

manager

mha-manager

3 测试目标

本次测试基于mha+主从复制,对现有的集群进行增加、删除节点操作。

本文档主要记录增加、删除节点的操作。

4 增加节点

4.1 节点信息

4.1.1 原有节点

172.17.0.6

node1

master

172.17.0.7

node2

slave1

172.17.0.8

node3

slave2

172.17.0.9

manager

mha-manager

4.1.2 新增节点

172.17.0.13

node4

slave3

4.2 主从添加节点

4.2.1 开启日志、打开gtid

修改my.cnf配置

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

server-id=4

log-bin=mysql-bin

gtid_mode=ON

enforce_gtid_consistency=ON

4.2.2 开启半同步复制

1) 安装相关插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';    

2) 修改配置

方法1:(重启mysql后参数失效)

set global rpl_semi_sync_master_enabled=1;

set global rpl_semi_sync_master_timeout=2000;

set global rpl_semi_sync_slave_enabled=1;

方法2:修改my.cnf文件配置(参数永久有效)

rpl_semi_sync_master_enabled = 1

rpl_semi_sync_master_timeout = 2000

rpl_semi_sync_slave_enabled=1

3) 重启mysql服务,查看修改的参数

show global variables like '%rpl_semi%';

4.2.3 从节点配置

mysql> alter user root@'localhost' identified by 'Aa!123456';

mysql> grant all privileges on *.* to root@'%' identified by 'Aa!123456';

mysql> change master to master_host='172.17.0.6', master_user='root', master_password='Aa!123456',master_auto_position=1;

mysql> start slave;

mysql> show slave statusG;

4.3 mha添加节点

4.3.1 下载、安装mha

 https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

4.3.2 修改mha配置文件

添加配置

[server4]

hostname=172.17.0.13

port=3306

4.3.3 配置SSH无密码验证

1)新增节点slave3生成秘钥、公钥

ssh-keygen -t rsa

2)其他节点将公钥发送salve3节点

master :ssh-copy-id root@172.17.0.13

salve1 :ssh-copy-id root@172.17.0.13

salve2 :ssh-copy-id root@172.17.0.13

mha-manager :ssh-copy-id root@172.17.0.13

3)salve3机器再将公钥发送到其他节点

scp /root/.ssh/authorized_keys root@172.17.0.6:/root/.ssh

scp /root/.ssh/authorized_keys root@172.17.0.7:/root/.ssh

scp /root/.ssh/authorized_keys root@172.17.0.8:/root/.ssh

scp /root/.ssh/authorized_keys root@172.17.0.9:/root/.ssh

4)测试

masterha_check_ssh --conf=/etc/mhamanger/app.conf

4.3.4 节点检测

masterha_check_repl --conf=/etc/mhamanger/app.conf

4.4 重启mha服务

4.4.1 停止

masterha_stop --conf=/etc/mhamanger/app.conf

4.4.2 启动

nohup masterha_manager --conf=/etc/mhamanger/app.conf  >/etc/mhamanger/mha.log 2>&1 &

原文地址:https://www.cnblogs.com/jiayan666/p/14285042.html