一、软件介绍
MHA(master high availability)目前是MySQL高可用方面是一个相对成熟的解决方案。在切换过程中,mha能做到0-30s内自动完成数据库的切换,并且在切换过程中最大的保持数据的一致性,以达到真正意义上的高可用
1、MHA的组成:
MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以独立部署在一台独立的机器上,管理多个集群,也可以部署在从从库上。
当Master出现故障的时候,它可以自动将最新的数据的Slave提升为新的Master,然后将所有的Slave重新指向新的Master,整个故障转移过程是完全透明的
2、软件包工具介绍:
manager工具包包括:
·masterha_check_ssh #检查MHA的SSH状况
·masterha_check_repl #检查MySQL复制状况
·masterha_manger #启动MHA
·masterha_check_status #检测当前MHA运行状态
·masterha_master_monitor #检测master是否宕机
·masterha_master_switch #控制故障转移(自动或者手动)
·masterha_conf_host #添加或删除配置的server信息
·masterha_seconder_check #视图建立TCP连接从远程服务器
·masterha_stop #停止MHA
node工具包(由manager自动调用执行):
·save_binary_logs #保存和复制master的二进制日志
·apply_diff_relay_logs #识别差异的中继日志事件并将其差异的事件应用于其他的
slave
·filter_mysqlbinlog #去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
·purge_relay_logs #清除中继日志(不会阻塞SQL线程)
3、工作原理:
·从宕机崩溃的master保存二进制日志事件;
·识别含有最新的slave;
·应用差异的中继日志(relay log)到其他的slave;
·应用从master保存的二进制日志事件;
·提升一个slave为新的master;
·使其他的slave连接新的master进行复制
二、MHA方案部署 采用
MHA对MySQL复制环境有特殊的要求,例如各节点都要开启二进制日志或中继日志,各从节点必须显示启用read-only属性,并关闭relay-log-purge功能等,每个节点需要有一个管理的账号,给manager使用
环境:
10.10.10.196 MHA-MANAGER
10.10.10.197 master 二进制编译安装mariadb-5.5.36-linux-x86_64.tar.gz
10.10.10.198 slave 二进制编译安装mariadb-5.5.36-linux-x86_64.tar.gz
10.10.10.199 slave 二进制编译安装mariadb-5.5.36-linux-x86_64.tar.gz
所有服务器时间要同步
注意:采用mha4mysql-manager-0.55+mha4mysql-node-0.54,一开始都采用0.58版本结果一直有报错,具体请点击
a、设置主197为服务器
配置:
查看:注意主服务器要先查看,在创建授权用户
授权从服务器复制用户:
b、设置从198服务器
配置:
连接主服务器,并开启复制线程
c、设置从199服务器
配置:
连接主服务器,并开启复制线程
以上主从配置完成,额外配置
a、主服务器上设置授权管理服务器管理账号:
b、管理服务器196要设置免密码ssh登录到各主从节点
ssh-keygen
ssh-copy-id -i ./id_rsa.pub root@10.10.10.197
ssh-copy-id