mysql的MHA
2.MHA(Master High Availability)
MHA是对主从模式在自动检测故障和自动主从切换的改进,帮助MySQL主从模式达到真正意义的高可用,MHA在MySQL高可用领域已经是一套相当成熟的方案
MHA由 MHA Manager 和 MHA Node组成
- MHA Manager:自动检测Master的故障,执行自动主从切换,MHA Manager 可以管理多个主从集群,通常被部署在单独的服务器
- MHA Node:修复主从数据的差异,被部署在每一台MySQL服务器上
MHA故障转移:
- MHA Manager 周期性探测master的心跳,如果连续四次没心跳,则认为master宕机了
- MHA Manager 判断每个slave的binlog,选最接近master的slave为接班的master
- MHA Node 试图SSH连接MHA Manager :
- 网络可达,MHA Node将master的binlog给slave做差异补齐
- 网络不可达,MHA Node对比每个slave的relay log ,做差异补齐
- MHA Manager 将那个准备接班的slave升为master,构建新的主从关系
MHA + 半同步复制,可以进一步大幅减少数据的丢失,因为半同步模式下,正好有一个slave与master的数据一致,就可以直接拿来作为新master