8.2 MHA 原理
1.MHA架构图


2.MHA工作原理
1.当Master宕机 2.MHA从宕机崩溃的master中找到保存的二进制日志(当mysql服务器死的不彻底) 3.自动识别含有最近更新的slave 4.应用差异的中继日志到其它的slave 5.应用从master保存的二进制日志
6.使其它的slave连接新的master进行复制
3.MHA软件
MHA软件由两部分组成,manager工具包和node工具包
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信息
Node工具包:这些工具通常由MHA Manager的脚本触发,无需人为操作)主要包括以下几个工具:
save_binary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用此工具)
purge_relay_logs 清除中继日志(不会阻塞SQL线程)
注意:为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL 5.5的半同步复制
MHA自定义扩展:
secondary_check_script: 通过多条网络路由检测master的可用性
master_ip_ailover_script: 更新Application使用的masterip
shutdown_script: 强制关闭master节点
report_script: 发送报告
init_conf_load_script: 加载初始配置参数
master_ip_online_change_script:更新master节点ip地址
MHA配置文件:
global配置,为各application提供默认配置,默认文件路径 /etc/masterha_default.cnf application配置:为每个主从复制集群
部署MHA
准备工作:MySQL一主两从
多机互信:
ssh-keygen ssh-copy-id 10.211.55.8 rsync -av .ssh 10.211.55.4:/root/ rsync -av .ssh 10.211.55.4:/root/ rsync -av .ssh 10.211.55.5:/root/ rsync -av .ssh 10.211.55.7:/root/
管理端安装 mha manage和node软件包
mha4mysql-manager-0.55-0.el6.noarch.rpm mha4mysql-node-0.54-0.el6.noarch.rpm
https://code.google.com/archive/p/mysql-master-ha/downloads
被管理端安装node软件包

浙公网安备 33010602011771号