MySQL高可用架构之MHA 详情实例
MHA架构实现步骤
具体实现流程
建立主从复制集群
集群详情图
部署完集群后,就要在每台服务器上配置ssh免登陆登陆
ssh 免登陆配置
[root@localhost test]# ssh-keygen //获取ssh秘钥
[root@localhost test]# ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@192.168.0.102; // root是需要免登陆的主机用户名, ip地址是目标ip ,/root/.ssh/id_rsa 这是获取秘钥后的文件
使用上面命令把所以的主机都配置上,连接起来,在主数据库宕机的时候,从数据库也能变成主数据库
[root@localhost test]# ssh root@192.168.0.100 //测试是否不需要密码直接连接云主机
[root@localhost ~]# exit //退出连接
配置MHA 环境
//在所有节点都要安装MHA node所需的perl模块(DBD:mysql)
yum -y install perl-DBD-MySQL //先安装所需的perl模块
tar -zvxf mha4mysql-node-0.56.tar.gz
cd mha4mysql-node-0.56
perl Makefile.PL
................................................................................................................
这一步可能报错如下:
1)Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr/local/share/perl5......
解决办法:
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
2)Can't locate CPAN.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5....
解决办法:
yum install -y perl-CPAN
................................................................................................................
make && make install
//在安装上面命令前一定要安装perl源,楼主为了这个踩了一个大坑,弄了一下午,才弄好
yum -y install epel-release //(安装)
yum clean all && yum makecache // (更新)
在所有的服务器安装MHA node:,MHA node和MHA Manager都在要官网下载,
下载地址:https://code.google.com/p/mysql-master-ha/wiki/Downloads?tm=2(自备梯子)
rpm -ivh mha4mysql-node-0.54-1.el5.noarch.rpm (安装命令)
安装MHA Manger依赖的perl模块(我这里使用yum安装):
首先下载第三方yum源
[root@Manager_Slave ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装perl的mysql包:
[root@Manager_Slave ~]# yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel- ForkManager perl-Config-IniFiles perl-Time-HiRes -y
安装MHA Manager软件包:
tar -vxf mha4mysql-manager-0.56.tar
cd mha4mysql-manager-0.56
perl Makefile.PL
make && make install
详情
-r-xr-xr-x. 1 root root 4807 Oct 17 09:58 filter_mysqlbinlog
-r-xr-xr-x. 1 root root 1995 Oct 17 10:50 masterha_check_repl
-r-xr-xr-x. 1 root root 1779 Oct 17 10:50 masterha_check_ssh
-r-xr-xr-x. 1 root root 1865 Oct 17 10:50 masterha_check_status
-r-xr-xr-x. 1 root root 3201 Oct 17 10:50 masterha_conf_host
-r-xr-xr-x. 1 root root 2517 Oct 17 10:50 masterha_manager
-r-xr-xr-x. 1 root root 2165 Oct 17 10:50 masterha_master_monitor
-r-xr-xr-x. 1 root root 2373 Oct 17 10:50 masterha_master_switch
-r-xr-xr-x. 1 root root 5172 Oct 17 10:50 masterha_secondary_check
-r-xr-xr-x. 1 root root 1739 Oct 17 10:50 masterha_stop
-r-xr-xr-x. 1 root root 8337 Oct 17 09:58 purge_relay_logs
-rwxr-xr-x. 1 root root 2431904 Apr 21 2017 redis-benchmark
-rwxr-xr-x. 1 root root 25176 Apr 21 2017 redis-check-aof
-rwxr-xr-x. 1 root root 5181800 Apr 21 2017 redis-check-rdb
-rwxr-xr-x. 1 root root 2584768 Apr 21 2017 redis-cli
lrwxrwxrwx. 1 root root 12 Apr 21 2017 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5181800 Apr 21 2017 redis-server
-r-xr-xr-x. 1 root root 7525 Oct 17 09:58 save_binary_logs