mha配置高可用mysql

mha配置mysql高可用
本次实验的环境为rhel7

monitor 172.25.254.40
master  172.25.254.41
slave   172.25.254.42
slave2  172.25.254.43

mha的节点部署过程
每个节点的操作:
下载好eple配置yum来源
下载这个压缩包 epel-release-6-8.noarch.rpm
然后

rpm -ivh epel-release-6-8.noarch.rpm

然后安装好perl与mysql的依赖性软件

yum install perl-DBD-MySQL -y

安装好以后开始安装mha node在每个节点上
下载这个压缩包 mha4mysql-node-0.56.tar.gz
进行源码安装过程
安装好依赖性软件,搭建一个perl环境

yum install perl-devel perl-CPAN -y

解压软件包

tar xf mha4mysql-node-0.56.tar.gz 
cd mha4mysql-node-0.56

执行里面的perl代码

perl Makefile.PL

安装

make && make install
cd /usr/local/bin/
ll
total 44
-r-xr-xr-x. 1 root root 16367 Aug  5 15:16 apply_diff_relay_logs
-r-xr-xr-x. 1 root root  4807 Aug  5 15:16 filter_mysqlbinlog
-r-xr-xr-x. 1 root root  8261 Aug  5 15:16 purge_relay_logs
-r-xr-xr-x. 1 root root  7525 Aug  5 15:16 save_binary_logs

save_binary_logs     
          //保存和复制master的二进制日志
apply_diff_relay_logs          //识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog             //去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs               //清除中继日志(不会阻塞SQL线程)

在Master主机上进入mysql创建好复制用户和监控用户

MariaDB [(none)]> grant all privileges on *.* to 'root'@'172.25.254.%' identified  by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant replication slave on *.* to 'repl'@'172.25.254.%' identified by '123456'; 
Query OK, 0 rows affected (0.00 sec)

安装mha manager步骤:

yum install perl-DBD-MySQL -y
yum install perl-devel perl-CPAN -y

重复之前安装node的方法,在manager主机上也安装好node
下载好mha4mysql-manager-0.56.tar.gz
与安装node的方式类似

tar xf mha4mysql-manager-0.56.tar.gz
cd mha4mysql-manager-0.56
perl Makefile.PL

然后安装

make && make install 

查看在bin下生成的脚本

cd /usr/local/bin
ll
total 136
-r-xr-xr-x. 1 root root 16367 Aug  6 04:48 apply_diff_relay_logs
-r-xr-xr-x. 1 root root  7138 Aug  6 05:13 config_data
-r-xr-xr-x. 1 root root 15080 Aug  6 05:13 corelist
-r-xr-xr-x. 1 root root  4807 Aug  6 04:48 filter_mysqlbinlog
-r-xr-xr-x. 1 root root  4170 Aug  6 05:13 json_pp
-r-xr-xr-x. 1 root root  1995 Aug  6 05:16 masterha_check_repl
-r-xr-xr-x. 1 root root  1779 Aug  6 05:16 masterha_check_ssh
-r-xr-xr-x. 1 root root  1865 Aug  6 05:16 masterha_check_status
-r-xr-xr-x. 1 root root  3201 Aug  6 05:16 masterha_conf_host
-r-xr-xr-x. 1 root root  2517 Aug  6 05:16 masterha_manager
-r-xr-xr-x. 1 root root  2165 Aug  6 05:16 masterha_master_monitor
-r-xr-xr-x. 1 root root  2373 Aug  6 05:16 masterha_master_switch
-r-xr-xr-x. 1 root root  5171 Aug  6 05:16 masterha_secondary_check
-r-xr-xr-x. 1 root root  1739 Aug  6 05:16 masterha_stop
-r-xr-xr-x. 1 root root   927 Aug  6 05:15 package-stash-conflicts
-r-xr-xr-x. 1 root root 13582 Aug  6 05:13 prove
-r-xr-xr-x. 1 root root  8261 Aug  6 04:48 purge_relay_logs
-r-xr-xr-x. 1 root root  7525 Aug  6 04:48 save_binary_logs

然后安装后生成的脚本复制到/usr/local/bin下

[root@www scripts]# ll
total 32
-rwxr-xr-x. 1 4984 users  3648 Apr  1  2014 master_ip_failover
-rwxr-xr-x. 1 4984 users  9870 Apr  1  2014 master_ip_online_change
-rwxr-xr-x. 1 4984 users 11867 Apr  1  2014 power_manager
-rwxr-xr-x. 1 4984 users  1360 Apr  1  2014 send_report
[root@www scripts]# pwd
/root/Desktop/mha4mysql-manager-0.56/samples/scripts

执行

cp * /usr/local/bin

然后设置SSH登陆无密码的验证方式
在master上

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.42
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.43

在slave上

ssh-keygen -t rsa

分发给master和slave

在slave2上

ssh-keygen -t rsa

分发给master和slave

在monitor上

ssh-keygen -t rsa

分发给master slave slave2

在搭建好主从复制的环境后,就可以搭建mha服务
在monitor端

cd /etc/
mkdir masterha
cp mha4mysql-manager-0.56/samples/conf/app1.cnf /etc/masterha/

然后在/etc/masterha下对app1.cnf进行修改

vim /etc/masterha/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
#master_binlog_dir=/data/mysql
#master_ip_failover_script=/usr/local/bin/master_ip_online_change
password=123456
user=slaves
ping_interval=1
remote_workdir=/tmp
repl_password=123456
repl_user=repl
report_script=/usr/local/bin/send_report
secondary_check_script=/usr/local/bin/masterha_secondary_check -s server1 -s server2 --username=root --master_host=server1 --master_ip=172.25.254.41 --master-port=3306
ssh_user=root
[server1]
hostname=172.25.254.41
port=3306

[server2]
hostname=172.25.254.42
port=3306
candidate_master=1
check_repl_delay=0

[server3]
hostname=172.25.254.43
port=3306

设置relay log的清除方式(在每个slave节点上):
在slave 172.25.254.42操作:

 mysql -uroot -p123456 -e "set global relay_log_purge=0"

在slave2 172.25.254.43操作:

 mysql -uroot -p123456 -e "set global relay_log_purge=0"

最后使用

masterha_check_repl --conf=/etc/masterha/app1.cnf

这里写图片描述
测试
可以将master搞down,然后查看slave是否被选举为master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值