mysql(六)MHA的MySQL高可用架构

实验环境

server1 172.25.254.10master
server2 172.25.254.20slave
server3 172.25.254.30slave
server4 172.25.254.40MHA

高可用的搭建

(1)配置server1的mysql服务

 systemctl stop mysqld
 [root@server1 mysql]# rm -fr *
 vim /etc/my.cnf

 29 server-id=1
 30 gtid_mode=ON
 31 enforce_gtid_consistency=ON
 32 log_bin=binlog
 33 log_slave_updates=ON

 systemctl start mysqld
grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'172.25.12.%' IDENTIFIED BY 'Yan+123kou';
mysql> SHOW MASTER STATUS;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)配置server2的mysql服务

systemctl stop mysqld
 cd /var/lib/mysql
 rm -fr *
 vim /etc/my.cnf

server-id = 2
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog

systemctl start mysqld
grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> CHANGE MASTER TO MASTER_HOST='172.25.254.10',MASTER_USER='repl',MASTER_PASSWORD='LIxin123.',MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)配置server3的mysql服务

systemctl stop mysqld

 vim /etc/my.cnf
加入:
server-id=3
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog

 rm -fr *

systemctl start mysqld
 grep password /var/log/mysqld.log
mysql -uroot -pLIxin123.
mysql> CHANGE MASTER TO MASTER_HOST='172.25.254.10',MASTER_USER='repl',MASTER_PASSWORD='LIxin123.',MASTER_AUTO_POSITION=1;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动实现一个master坏了选举出新的master

1.server4上安装需要的软件
在这里插入图片描述
在这里插入图片描述
2.生成ssh密钥,管理节点是不需要输入密码,将生成的公钥和私钥传给数据节点

[root@server4 ~]# ssh-keygen
[root@server4 ~]# ssh-copy-id server1
[root@server4 ~]# ssh-copy-id server2
[root@server4 ~]# ssh-copy-id server3

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

让server123之间免密

[root@server4 ~]# scp -r .ssh server1:
[root@server4 ~]# scp -r .ssh server2:
[root@server4 ~]# scp -r .ssh server3:

在这里插入图片描述
(3)将节点的安装包传给数据节点

oot@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server1:/root/
[root@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server2:/root/
[root@server4 MHA-7]# scp -r mha4mysql-node-0.58-0.el7.centos.noarch.rpm server3:/root/

在这里插入图片描述
(4)数据节点安装
server123都一样的操作

[root@server1 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm 
[root@server2 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm 
[root@server3 ~]# yum install -y mha4mysql-node-0.58-0.el7.centos.noarch.rpm

在这里插入图片描述
(5)管理节点创建一个目录,编辑配置文件
在这里插入图片描述
在这里插入图片描述
(6)管理节点ssh检查管理节点ssh检查
在这里插入图片描述
(7)数据节点授权

mysql> grant all on *.* to root@'%' identified by 'Yan+123';

在这里插入图片描述
(8)管理节点环境健康检查

[root@server4 ~]# masterha_check_repl --conf=/etc/masterha/master.cnf 

在这里插入图片描述
(9)手动替换master

关闭当前的master节点的mysql服务:
[root@server1 ~]# systemctl stop mysqld
手动替换master节点:
[root@server4 ~]# masterha_master_switch --master_state=dead 
--conf=/etc/masterha/master.cnf  --dead_master_host=172.25.254.10
--dead_master_port=3306 --new_master_host=172.25.254.20 --new_master_port=3306

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启server1的master服务,将他的master改为server2

在这里插入图片描述

手动实现所有数据库都在线的时候,切换master节点

(1)删除之前生成的文件

[root@server4 ~]# cd /etc/masterha/
[root@server4 masterha]# rm -fr   master.failover.complete

在这里插入图片描述

(2)输入命令自动替换

masterha_master_switch --conf=/etc/masterha/master.cnf --master_state=alive --
new_master_host=172.25.254.10 --new_master_port=3306 --orig_master_is_new_slave 
--running_updates_limit=10000

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手动切换VIP漂移

(1)server4创建一个检测进程

nohup masterha_manager  --conf=/etc/masterha/zp.cnf &> /dev/null &

在这里插入图片描述
此时:在这里插入图片描述
(2)关闭server1的mysql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全自动实现vip的自动漂移

(1)下载两个脚本,给两个脚本加上可执行权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)编辑配置文件,加入两行内容
在这里插入图片描述
(3)给server2(当前master)上添加一个vip
在这里插入图片描述
(4)server4 手动切换master到server1
在这里插入图片描述
在这里插入图片描述
(5)查看结果

此时vip转移到server1上,server2上的vip自动删除
在这里插入图片描述

使用脚本实现全自动切换master

创建监控master的进程
在这里插入图片描述
server1关闭mysql服务

在这里插入图片描述
在这里插入图片描述
server2可以查看到vip
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值