MHA集群概述 、 部署MHA集群

一、MHA集群概述

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

MAH的工作过程

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

二、 部署MHA集群

2.1 安装依赖包

[root@web1 mha]# yum -y install perl-*

配置ssh密钥对认证登录
在这里插入图片描述

[root@web1 mha]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm
[root@web1 mha]# tar -xvf mha4mysql-manager-0.56.tar.gz
[root@web1 mha]# cd mha4mysql-manager-0.56/
[root@web1 mha4mysql-manager-0.56]# perl Makefile.PL  #显示差什么就安装什么
[root@web1 mha4mysql-manager-0.56]#  yum list  | grep  -i  CPAN
[root@web1 mha4mysql-manager-0.56]# yum -y  install perl-CPAN*
[root@web1 mha4mysql-manager-0.56]# perl Makefile.PL 
[root@web1 mha4mysql-manager-0.56]# make && make install

2.2 创建并编辑主配置文件

管理服务器

[root@web1 ~]# mkdir /etc/mha
[root@web1 ~]# cp app1.cnf master_ip_failover /etc/mha/
[root@web1 ~]# cd /etc/mha/
[root@web1 mha]# chmod +x master_ip_failover    //加执行权限

[root@web1 mha]# cat app1.cnf 
[server default]   //管理服务默认配置
manager_log=/etc/mha/manager.log    //日志文件
manager_workdir=/etc/mha   //工作目录
master_ip_failover_script=/etc/mha/master_ip_failover  //故障切换脚本
repl_user=mao   //数据同步授权用户
repl_password=123qqq...A   //密码
ssh_port=22   //ssh服务端口
ssh_user=root   //访问ssh服务用户
user=root   //监控用户
password=123qqq...A   //密码
[server1]   //指定第一台数据库服务器
candidate_master=1  //竞选主服务器
hostname=192.168.4.51   //服务器IP地址
port=3306   //服务端口
[server2]    //指定第二台数据库服务器
.....
[server3]
......

[root@web1 mha]# vim master_ip_failover 
my $vip = '192.168.4.100/24';  # Virtual IP  定义VIP地址
my $key = "1";    //定义地址编号
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";   //绑定vip地址
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";    //释放vip地址

2.3 配置数据库服务器 51 52 53

51、52、53的操作相同

 51 52 53 安装mha_node软件包
[root@proxy mha]# yum -y  install mha4mysql-node-0.56-0.el6.noarch.rpm

51上配置VIP

[root@proxy mha]# ifconfig ens33:1 192.168.4.100/24
[root@proxy mha]# ifconfig ens33:1

监控用户root

[root@proxy mha]# mysql -uroot -p123qqq...A -e 'grant all on *.* to root@"%" identified by "123qqq...A"'

授权用户mao

[root@proxy mha]# mysql -uroot -p123qqq...A -e 'grant replication slave on *.* to mao@"%" identified by "123qqq...A"'

在51、52、53 数据库服务器启用 主从角色半同步复制模式、禁止自动删除中继日志文件

[root@proxy mha]# vim /etc/my.cnf  #以51为例
log_bin=ppp
server_id=51
#
plugin-load ="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"  //加载模块
rpl_semi_sync_master_enabled=1   //启用master模块
rpl_semi_sync_slave_enabled=1    //启用slave模块
relay_log_purge=0    //禁止自动删除中继日志文件

重启 51、52、53 主机的数据库服务
systemctl restart mysqld

2.4 在管理主机 检查配置

在这里插入图片描述

[root@web1 mha]# masterha_check_ssh --conf=/etc/mha/app1.cnf
[root@web1 mha]# masterha_check_repl --conf=/etc/mha/app1.cnf

2.5 启动管理服务

[root@web1 mha]# masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf  --ignore_last_failover  
[root@web1 ~]# masterha_check_status --conf=/etc/mha/app1.cnf

2.6 测试

关掉51的mysql服务(管理服务器的mha就会停掉),查看52是否有VIP(ifconfig ens33:1)
如52上有VIP:192.168.4.100,说明已成功

如要保持mysql的高可用,还需要在开启MHA服务

发布了25 篇原创文章 · 获赞 2 · 访问量 577

猜你喜欢

转载自blog.csdn.net/f5500/article/details/104505031