mha配置高可用mysql

xiaoxiao2021-02-28  108

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

转载请注明原文地址: https://www.6miu.com/read-29538.html

最新回复(0)