MHA数据库高可用

MHA

一、添加vm3为备机

基于mysql-proxy实验基础上,将vm3也改为备机。
先关掉mysql-proxy进程。
ps -ax 查看进程pid(如果没有则不需要kill)

(1.)下载mysql

在这里插入图片描述

(2)配置
mysql -p                                     ##登陆数据库
Enter password:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';    ##下载半同步模块

在这里插入图片描述
配置主配置文件:

vim my.cnf

在这里插入图片描述

systemctl restart mysqld

为vm3添加master机

mysql>  change master to master_host='172.25.64.11',master_user='repl', master_password='Highhorse+007',master_auto_position=1;  ##直接使用gtid自动
mysql> start slave;   ##开启
mysql> show slave status\G  ##查看slave状态

显示
Slave_IO_Running: Yes
Slave_SQL_Running: No ##数据不一致导致

在这里插入图片描述

(3)问题解决:
vim my.cnf

在这里插入图片描述

systemctl restart mysqld
mysql> stop slave;
备份westos库
[root@vm1 ~]# mysqldump -u root -p westos > westos.sql           ##将数据库倒入.sql文件
Enter password: 
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 
[root@vm1 ~]# scp westos.sql vm3:             ##将备份发送到vm3
导入备份
[root@vm3 ~]# mysqladmin -u root -pHighhorse+007 create westos    ##创建同名库
[root@vm3 ~]#  mysql -u root -p westos < westos.sql                            ##导入数据
查看数据是否导入:

在这里插入图片描述

在这里插入图片描述
取消注释,重启mysql。

二、安装MHA

[root@vm1 MHA-7]# ls
mha4mysql-manager-0.58-0.el7.centos.noarch.rpm  perl-Mail-Sender-0.8.23-1.el7.noarch.rpm
mha4mysql-manager-0.58.tar.gz                   perl-Mail-Sendmail-0.79-21.el7.noarch.rpm
mha4mysql-node-0.58-0.el7.centos.noarch.rpm     perl-MIME-Lite-3.030-1.el7.noarch.rpm
perl-Config-Tiny-2.14-7.el7.noarch.rpm          perl-MIME-Types-1.38-2.el7.noarch.rpm
perl-Email-Date-Format-1.002-15.el7.noarch.rpm  perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm
perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm
[root@vm1 MHA-7]# yum install * -y

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

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

三、节点免密

MHA中各个worker之间必须免密,master到worker也需要免密,所以要在他们之间进行免密操作。
[root@vm1 MHA-7]# ssh-keygen
[root@vm1 ~]# cd .ssh/
[root@vm1 .ssh]# ssh-copy-id vm1

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

四、配置主从

各个节点配置完全一样;文件除server-id外全一样。

vm1
mysql> grant all on *.* to root@'%' identified by 'Highhorse+007';
Query OK, 0 rows affected, 1 warning (0.07 sec)
mysql> flush privileges;
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql> grant replication slave on *.* to repl@'172.25.64.%' identified by 'Highhorse+007';
mysql> flush privileges;

vim /etc/my.cnf
在这里插入图片描述
systemctl restart mysqld

vm2
[root@vm2 ~]# mysql -p
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.16 sec)

mysql> set global read_only=1;
Query OK, 0 rows affected (0.00 sec)

vim /etc/my.cnf
在这里插入图片描述
systemctl restart mysqld

vm3

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so’;
Query OK, 0 rows affected (0.48 sec)

mysql> set global read_only=1;
在这里插入图片描述
systemctl restart mysqld

五、配置MHA

[root@vm1 ~]#  tar zxf mha4mysql-manager-0.58.tar.gz
[root@vm1 ~]# cd mha4mysql-manager-0.58/
[root@vm1 mha4mysql-manager-0.58]# cd samples/conf/
[root@vm1 conf]# ls
app1.cnf  masterha_default.cnf
[root@vm1 conf]# mkdir /etc/masterha
[root@vm1 conf]# cp * /etc/masterha/
[root@vm1 conf]# cd /etc/masterha/
[root@vm1 masterha]# cat app1.cnf >>masterha_default.cnf

编写配置文件

[server default]
manager_workdir=/etc/masterha    ##设置manger工作目录
manager_log=/etc/masterha/manager.log  ##设置manger日志
user=root
password=Highhorse+007
ssh_user=root
master_binlog_dir=/var/lib/mysql  ##mysql的数据目录。设置master保存binlog,以便MHA可找到master的日志。
remote_workdir=/tmp
#secondary_check_script= masterha_secondary_check -s remote_host1 -s remote_host2
ping_interval=1
repl_user=repl
repl_password=Highhorse+007
# master_ip_failover_script= /script/masterha/master_ip_failover ##设置手动failover时切换脚本
# shutdown_script= /script/masterha/power_manager
# report_script= /script/masterha/send_report
# master_ip_online_change_script= /script/masterha/master_ip_online_change  设置自动failover时切换脚本

[server1]
hostname=172.25.64.11

[server2]
hostname=172.25.64.12
candidate_master=1
check_repl_delay=0

[server3]
hostname=172.25.64.13
no_master=1

六、检测

[root@vm1 masterha]# masterha_check_ssh --conf=/etc/masterha/masterha_default.cnf ##检测manger到节点的免密ssh连接状态

在这里插入图片描述
[root@vm1 masterha]# masterha_check_repl --conf=/etc/masterha/masterha_default.cnf ##检测repl用户mysql主从复制状态
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值