加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

详解MySQL高可用方案:MySQL MHA架构、原理、应用场景等

发布时间:2019-07-31 22:40:20 所属栏目:编程 来源:波波说运维
导读:概述 MySQL高可用,顾名思义就是当MySQL主机或处事产生任何妨碍时可以或许立马有其他主机顶替其事变,而且最低要求是要担保数据同等性。因此,对付一个MySQL高可用体系必要到达的方针有以下几点: 数据同等性担保--这个是最根基的同时也是条件,假如主备的数据

详解MySQL高可用方案:MySQL MHA架构、道理、应用场景等

概述

MySQL高可用,顾名思义就是当MySQL主机或处事产生任何妨碍时可以或许立马有其他主机顶替其事变,而且最低要求是要担保数据同等性。因此,对付一个MySQL高可用体系必要到达的方针有以下几点:

  • 数据同等性担保--这个是最根基的同时也是条件,假如主备的数据纷歧致,那猛迫椿就无法举办,虽然这里的同等性也是一个相对的,可是要做到最终同等性。
  • 妨碍快速切换--当master妨碍时这里可所以呆板妨碍可能是实例妨碍,要确保营业能在最短时刻切换到备用节点,使得营业受影响时刻最短。
  • 简化一般维护--通过高可用平台来自动完成高可用的陈设、维护、监控等使命,可以或许最洪流平的解放DBA手动操纵,进步一般运维服从。
  • 同一打点--当复制集许多的环境下,可以或许同一打点高可用实例信息、监控信息、切换信息等。
  • 高可用的陈设--要对现有的数据库架构无影响,假如由于陈设高可用,必要变动可能调解数据库架构则会导致本钱增进。

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

详解MySQL高可用方案--MySQL MHA架构、道理、应用场景等

假如想要正确规复:

  • Master必需发出的ID=102的binlog
  • 还要消除各个Slave之间的差别性

而MHA可以全自动的处理赏罚以上这些题目。

MHA架构

MHA架构如下:

详解MySQL高可用方案--MySQL MHA架构、道理、应用场景等

可实现master事变状态的监控以及宕机时的妨碍转移

MHA道理

MHA道理如下图:

详解MySQL高可用方案--MySQL MHA架构、道理、应用场景等
  • 1、守候SQL线程执行完毕
  • 2、理会最新的Slave上的中继日记(relay log)的日记头(log Header),为其他各个处事器确定出差别位置
  • 3、将i1-->i2-->X 所有构成一个二进制日记

MHA的首要特征

  • 从master的监控到妨碍转移所有都能自动完成,妨碍转移也可手动执行
  • 可在秒级单元内实现妨碍转移
  • 可将恣意Slave晋升至master
  • 具备在多个点上挪用外部剧本(扩展)的手艺,可以用在电源OFF可能IP地点的妨碍转移上。
  • 安装和卸载不消遏制当前的mysql历程
  • MHA 自身不会增进处事器承担,不会低落机能,不消追加处事器
  • 不依靠Storage Engine
  • 不依靠二进制文件的名目(岂论是statement模式照旧Row模式)

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架构。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读