详解MySQL高可用方案:MySQL MHA架构、原理、应用场景等
概述 MySQL高可用,顾名思义就是当MySQL主机或处事产生任何妨碍时可以或许立马有其他主机顶替其事变,而且最低要求是要担保数据同等性。因此,对付一个MySQL高可用体系必要到达的方针有以下几点:
MySQL MHA MHA是一位日本MySQL大牛用Perl写一套MySQL妨碍切换方案,来担保数据库体系的高可用,在宕机的变乱内(凡是10-30秒),完成妨碍回心,陈设MHA,可停止主从同等性题目,节省购置新处事器的用度,不影响处事器机能,易安装,不改变现有陈设架构。 MHA(Master HA)为MySQL主从复制架构提供了automating master failover 成果。MHA在监控到master节点妨碍时,会晋升个中拥有最新数据的slave节点成为新的master节点,在此时代,MHA会通过与其余从节点获取特殊信息来停止同等性方面的题目。MHA还提供了master节点的在线切换成果,即按需切换master/slave节点。 相较于其余HA软件,MHA的目标在于维持MySQL Replication中Master库的高可用性,其最大特点是可以修复多个Slave之间的差别日记,最终使全部Slave保持数据同等,然后从中选择一个充当新的Master,并将其余Slave指向它。 应用场景 一主多从的情形下,MySQL的主从复制是异步或是半同步。 Master产生妨碍的时辰,有也许一部门(可能所有)的Slave未能获取到最新的binlog,造成Slave之间的binlog转发产生毛病。 如下图所示,Master宕机之后,id=102的binlog未能被发送到任何一个Slave上,id=101的binlog只有save2上有,slave3上未能收到id=100和id=101的binlog ![]() 假如想要正确规复:
而MHA可以全自动的处理赏罚以上这些题目。 MHA架构 MHA架构如下: ![]() 可实现master事变状态的监控以及宕机时的妨碍转移 MHA道理 MHA道理如下图: ![]()
MHA的首要特征
MHA组件 1、 Manager器材: – masterha_check_ssh : 搜查MHA的SSH设置。 – masterha_check_repl : 搜查MySQL复制。 – masterha_manager : 启动MHA。 – masterha_check_status : 检测当前MHA运行状态。 – masterha_master_monitor : 监测master是否宕机。 – masterha_master_switch : 节制妨碍转移(自动或手动)。 – masterha_conf_host : 添加或删除设置的server信息。 2、 Node器材(这些器材凡是由MHAManager的剧本触发,无需人手操纵)。 – save_binary_logs : 生涯和复制master的二进制日记。 – apply_diff_relay_logs : 辨认差此外中继日记变乱并应用于其余slave。 – filter_mysqlbinlog : 去除不须要的ROLLBACK变乱(MHA已不再行使这个器材)。 – purge_relay_logs : 破除中继日记(不会阻塞SQL线程)。 3、自界说扩展: -secondary_check_script:通过多条收集路由检测master的可用性; -master_ip_failover_script:更新application行使的masterip; (必要修改) -shutdown_script:逼迫封锁master节点; -report_script:发送陈诉; -init_conf_load_script:加载初始设置参数; -master_ip_online_change:更新master节点ip地点;(必要修改) 总结 今朝MySQL高可用方案可以必然水平上实现数据库的高可用,好比MMM,heartbeat+drbd,NDB Cluster等。尚有MariaDB的Galera Cluster,以及MySQL 5.7.17 Group Replication等。这些高可用软件各有是非。在举办高可用方案选择时,首要是看营业对数据同等性方面的要求。不外出于对数据库的高可用和高靠得住的要求,小我私人较量保举行使MHA架构。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |