MHA的理论知识网上有很多教程,这里不会说明;仅推荐博客链接!
MHA的理论说明:http://www.ywnds.com/?p=8094
MHA的安装包需要在google上面下载,或者就是csdn上面花钱下载!
详细说明怎么搭建MHA
#四台服务器分配如下 10.0.102.214 test3 MHA的管理节点 10.0.102.204 test2 master节点 10.0.102.179 test1 slave节点(作为备用的管理节点) 10.0.102.221 mgt01 slave节点
#这里我们一主两从的架构基于binlog复制,首先需要配置好一主两从的架构。
#需要注意的是,作为备用主的slave服务器需要开通二进制日志和配置log_slave_updates参数
#MySQL基于binglog复制过程如下: https://www.cnblogs.com/wxzhe/p/10051114.html
#部署过程中不会说明怎么搭建MySQL主从架构
第一步:搭建好主从架构,也就是一主两从的架构。【MHA的官方不支持一主一从,但是传闻阿里修改了源码使其支持一主一从,这里使用官方的结构】
需要注意的是要在作为备用主的服务器添加如下配置:
log-bin= #开启二进制日志
log_slave_updates #把SQL线程的动作写入二进制日志
第二步:安装MHA
在MHA的集群的所有服务器上需要安装MHA-node节点,
[root@mgt01 ~]# yum install epel-release perl-DBD-MySQL perl-CPAN -y #安装依赖包 [root@mgt01 src]# ls mha4mysql-node-0.56.tar.gz [root@mgt01 src]# tar zxvf mha4mysql-node-0.56.tar.gz -C ../ #解压 [root@mgt01 src]# cd ../ [root@mgt01 local]# cd mha4mysql-node-0.56/ [root@mgt01 mha4mysql-node-0.56]# ls AUTHORS bin COPYING debian inc lib Makefile.PL MANIFEST META.yml README rpm t [root@mgt01 mha4mysql-node-0.56]# perl Makefile.PL #编译 [root@mgt01 mha4mysql-node-0.56]# make & make install #安装
[root@mgt01 ~]# cd /usr/local/bin #安装完成之后,会在/usr/local/bin目录下面生成如下文件
[root@mgt01 bin]# ls
apply_diff_relay_logs filter_mysqlbinlog purge_relay_logs save_binary_logs
[root@mgt01 bin]# ll
total 44
-r-xr-xr-x 1 root root 16367 Dec 8 10:29 apply_diff_relay_logs
-r-xr-xr-x 1 root root 4807 Dec 8 10:29 filter_mysqlbinlog
-r-xr-xr-x 1 root root 8261 Dec 8 10:29 purge_relay_logs
-r-xr-xr-x 1 root root 7525 Dec 8 10:29 save_binary_logs
注意上面的这一步操作,需要在MHA集群的每个节点上都执行!
安装MHA-manager,也就是MHA集群的管理节点!
#首先安装MHA-manager需要安装的包
yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes -y
#安装MHA-manager
tar zxvf mha4mysql-manager-0.56.tar.gz cd mha4mysql-manager-0.56/ perl Makefile.PL make & make install
cp -frp samples/scripts/* /usr/local/bin #把这些脚本文件拷贝到/usr/local/bin下面,这样不用再添加环境变量
master_ip_failover:故障自动切换时对vip管理的脚本,不是必须。如果我们使用keepalived的,我们可以自己编写脚本完成对vip的管理,比如监控mysql,如果mysql异常,我们停止keepalived就行,这样vip就会自动漂移。
master_ip_online_change:在线切换时对vip的管理,不是必须,同样可以自行编写简单的shell完成。
power_manager:故障发生后关闭主机的脚本,不是必须。
send_report:因故障切换后发送报警的脚本,不是必须,可自行编写简单的shell完成。