MHA的概念

版权声明:本文为博主原创文章,未经博主允许不得转载,转载附上原文链接即可。 https://blog.csdn.net/GX_1_11_real/article/details/87515562

MHA概念



来历


MHA(Master High Availability)由日本DeNA公司youshimaton开发,是一套MySQL高可用性环境下故障切换和主从提升的高可用软件。



优点


其具有自动故障检测和故障转移的功能,可以在检测到mysql发生故障时,10~30秒之内自动完成数据库的故障切换操作,远快于手动切换,且能在切换过程中,最大程度上保证数据的一致性。

节省资源,仅部署一个Manager节点就能管理多个复制。

安装简单,且不需要修改现有的复制部署。

具有在线主库切换的功能,能够快速且安全的切换当前运行的主库到一个新的主库中。



限制


主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器。

manager和node的服务器间可通过ssh访问。当服务器硬件故障或无法通过ssh访问时,MHA会无法保存到主库的二进制日志,只会进行故障转移而丢失最新数据。使用 MySQL的半同步复制,可以大大降低数据丢失的风险。



组成


manager管理节点

可单独部署在一台独立机器上,也可以部署在一台slave节点上。用于管理多个master/slave集群, 每个master/slave集群称作一个application。就像一个将军可以统领多个军队。



node数据节点

其运行在每台mysql服务器上,不论是master还是slave,其会接收manager发的指令。在manager检测到当前的master出现故障时,node可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。



工作原理


保存宕机的master的二进制日志事件

识别具有最新更新的slave

应用差异的中继日志到其他slave

应用从master保存二进制日志事件

提升一个slave为新的master

使用其他slave指向新的master进行复制



MHA工具


masterha_check_ssh              检查 MHA的SSH配置情况
masterha_check_repl             检查 MySQL 复制状况
masterha_manager                启动 MHA
masterha_check_status           检测当前MHA运行状态
masterha_master_monitor         检测 Master 是否宕机
masterha_master_switch          手动Master节点切换
masterha_conf_host              添加或删除配置的server信息
masterha_stop                   关闭MHA服务的工具

下列为node节点的工具,通常由Manager节点的脚本触发,无需人工操作

save_binary_logs                保存和复制Master节点的binlog日志
apply_diff_relay_logs           识别差异的中级日志时间并将其应用到其他slave
filter_mysqlbinlog              去除不必要的 ROOLBACK 事件(已经废弃)
purge_relay_logs                清除中继日志
secondary_check_script          检测master的可用性
master_ip_failover_script       更新application使用的master的ip
report_script                   发送报告
init_conf_load_script           加载初始配置参数
master_ip_online_change_script  更新master节点ip地址

猜你喜欢

转载自blog.csdn.net/GX_1_11_real/article/details/87515562
mha
今日推荐