mysql 高可用集群MHA

MHA介绍

​ MHA(Master High Avalilability)MySQL高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能做到在10~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

​ MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(将主库提供为主库),大概0.5-2s内完成。

​ MHA由两部分组成:,MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。

MHA 优点

  • 自动故障转移快
  • 主库崩溃不存在数据一致性问题
  • 不需要对当前mysql环境做重大修改
  • 不需要添加额外的服务器(仅一台manager就可管理上百个replication)
  • 性能优秀,可工作在半同步半复制和异步复制,当监控mysql状态时,仅需要每隔N秒向master发送ping包(默认3秒),所以对性能无影响。你可以理解为MHA的性能和简单的主从复制框架性能一样。
  • 支持所有的存储引擎

MHA工程流程

  • 把宕机的master二进制日志保存下来
  • 找到binlog位置点最新的slave
  • 在binlog位置点最新的slave上用relay log修复其它slave
  • 将宕机的master上保存下来的二进制日志恢复到含有最新位置点的slave上
  • 将含有最新位置点binlog所在的slave提升为master
  • 将其它slave重新指向新提升的master,并开启主从复制。(重构主从)

MHA 架构

image.png

工具

  • manager工具

(1)masterha_check_ssh #检查MHA的SSH配置状况;

(2)masterha_check_repl #检查MySQL复制状况;

(3)masterha_manger #启动MHA;

(4)masterha_check_status #检测当前MHA运行状态;

(5)masterha_master_monitor #检测master是否宕机;

(6)masterha_master_switch #控制故障转移(自动或者手动);

(7)masterha_conf_host #添加或删除配置的server信息

  • node 工具,这些工具通常有MHA Manager的脚本触发,无需认为操作。

(1)save_binary_logs #保存和复制master的二进制日志;

(2)apply_diff_relay_logs #识别差异的中继日志事件并将其差异的事件应用于其他的slave;

(3)purge_relay_logs #清除中继日志(不会阻塞SQL线程);

配置安装

你可能感兴趣的:(mysql 高可用集群MHA)