MySQL 高可用(MHA)
发布网友
发布时间:2024-10-03 20:49
我来回答
共1个回答
热心网友
时间:2024-11-15 20:45
MHA(Master High Availability)是一种在MySQL高可用性环境下用于故障切换和主从提升的软件解决方案。它由日本DeNA公司的youshimaton(现就职于*公司)开发。MHA可以在0~30秒内自动完成数据库故障切换操作,同时在故障切换过程中保证数据一致性。
MHA软件主要包括MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以独立部署在独立的机器上管理多个master/slave集群,也可以部署在slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,MHA Node可以自动将拥有最新数据的slave提升为新的master,并将所有其他的slave重新指向新的master,整个过程对应用程序透明。
MHA主要支持一主多从的架构。要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库。淘宝对该架构进行了改造,目前淘宝TMHA支持一主一从。
MHA工具程序包括Manager节点(管理软件)和Node节点(被管理端软件)。Manager节点包括:masterha_check_ssh、masterha_check_repl、masterha_manager、masterha_check_status、masterha_master_monitor、masterha_master_swith、masterha_conf_host、masterha_stop。Node节点包括:save_binary_logs、apply_diff_relay_logs、purge_relay_logs。
MHA工作原理包括:从宕机崩溃的master节点保存二进制日志事件(binlog events)、识别含有最新更新数据的slave、应用差异的中继日志(relay log)到其他slave、应用从master保存的二进制日志事件(binlog events)、提升一个slave为新master、使用其他的slave连接新的master进行复制。
MHA高级功能包括:监控主节点状态、选主功能、为新选的主库做数据补偿功能、故障转移功能(用虚拟IP(VIP)切换)、故障提醒功能、额外日志补偿功能。
MHA维护操作包括:只切换角色和利用aster_ip_online_change_script脚本切换。