• MySQL高可用架构学习


    MHA(Master HA)是一款开源的由Perl语言开发的MySQL高可用架构方案。它为MySQL 主从复制架构提供了 automating master failover 功能。MHA在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的 master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能,即按需切换 master / slave 节点。

    在这里插入图片描述

    MHA软件由两部分组成,Manager工具包和Node工具包,具体的说明如下:

    MHA Manager(管理节点)作用
    masterha_check_ssh检查MHA的
    ssh-key masterha_check_repl检查主从复制情况
    masterha_manger启动MHA
    masterha_check_status检测MHA的运行状态
    masterha_master_monitor检测master是否宕机
    masterha_master_switch手动故障转移
    masterha_conf_host手动添加server信息
    masterha_secondary_check建立TCP连接从远程服务器
    masterha_stop停止MHA

    Node工具包主要包括以下几个工具:

    MHA Node(数据节点)作用
    save_binary_logs保存宕机的master的binlog
    apply_diff_relay_logs识别 relay logs的差异对比
    filter_mysqlbinlog防止回滚事件,截取日志
    purge_relay_logs清除中继日志relay_logs

    MHA故障发现与转移过程

    在这里插入图片描述

    在这里插入图片描述

    转移过程:保证所有从属服务器之间数据是一致的。

    在这里插入图片描述

    比对后,将差异数据发往每一个从属服务器。所有从属服务器日志与主服务器保持同步。

    在这里插入图片描述

    主服务器选择方案:

    在这里插入图片描述

    VIP虚拟IP漂移,将原有的VIP指向新的主服务器。大概有几秒中时间。

    在这里插入图片描述

    old master恢复后:

    在这里插入图片描述

    总结一下

    优点:

    • 由perl语言开发的开源工具
    • 可以支持基于GTID的复制模式
    • 当主DB不可用时,从多个从服务器中选举出来新的主DB
    • 提供了主从切换和故障转移功能,在线故障转移时不易丢失数据
    • 同一个监控节点可以监控多个集群

    缺点:

    • 需要编写脚本或利用第三方工具来实现VIP的配置
    • MHA启动后只监控主服务器是否可用,没办法监控从服务器
    • 需要基于SSH免认证登陆配置,存在一定的安全隐患
    • 没有提供从服务器的读负载均衡功能
  • 相关阅读:
    正则表达式高级用法
    FreeRTOS学习笔记——四、任务的定义与任务切换的实现
    go-redis源码解析:连接池原理
    12.vue3组件化开发(非父子组件之间的通信和插槽)
    ssm+vue基于微信小程序的数学辅导教学学习系统#毕业设计
    游戏招商公司如何招聘员工?
    Tomcat
    计蒜客详解合集(1)期
    linux创建mysql新用户及授权
    sqllabs第46关 order by 注入(通过盲注)
  • 原文地址:https://blog.csdn.net/liwenyang1992/article/details/133936768