• 【MySql】mysql之MHA高可用配置及故障切换


    一、MHA概念

    MHA(Master High Availability)是一套优秀的Mysql高可用环境下故障切换和主从复制的软件。

    • MHA的出现就是解决Mysql单点的问题。

    • Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

    • MHA能在故障切换的过程中最大程度受伤保证数据的一致性,以达到真正意义上的高可用。

    1、MHA的组成

    MHA Node(数据节点)

    • MHA Node运行在每台Mysql服务器上

    MHA Manager(管理节点)

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

    2、MHA的特点

    • 自动故障切换过程中, MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失。
    • 使用半同步复制 ,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其它所有的slave服务器上,因此可以保证所有节点的数据一致性。
    • 目前MHA支持一主多从架构,最少三台服务,即一主两从。

    3、主从复制有多少种复制方法

    总共有三种:同步、半同步、异步

    异步: 在主从架构中加入当客户端发送了一条update语句,主服务器上I/O 线程将二进制日志写入到binlog文件之后就返回客户端结构,不管从服务器是否已经同步到了自己的relay-log(中继日志中)。

    • 优点:性能是最好的。
    • 缺点:主服务器宕机,容易造成数据不一致,mysql中默认的就是异步复制。

    同步: 也称全同步,当主服务器完成更新,并且同步到所有从服务器才会返回成功结果。

    • 优点:安全
    • 缺点:效率低,影响性能。

    半同步: 将两个方法折中,当主服务器完成更新,至少有一个从服务器接收到并完成更新,主服务器就返回成功。

    4、MHA工作原理

    • 从宕机崩溃的master 保存二进制日志事件(binlog  events)
    • 识别含有最新的更新 slave 日志
    • 应用差异的中继日志(relay log)到其他的slave
    • 应用从master保存的二进制日志事件
    • 提升一个 salve 为新的master
    • 使其他的slave连接行的master 进行复制

    二、实验:

    三、总结

    1、mha

    ① 作用:mysql的高可用 + 故障切换

    ② 核心部分:
    MHA组件:

    • manager: 主要的功能:做MHA 启动、关闭管理和检测mysql各种健康状态
    • node: 在发生故障时,尽可能的保存二进制日志,并且实现故障切换(VIP地址飘逸)

    ③ MHA需要配置的文件(2个):

    • master ip failover脚本文件: 命令工具 ,定义的是基于VIP的检测和故障转移 (VIP从master----->新的 master)
    • app1.conf配置文件: mha的主要配置文件,主要定义了mha的工作目录、日志。
      mysql二进制日志位置
      用mha的登录mysql的用户、密码使用从服务器
      身份同步master的账号、密码 (五个)

    ④ 故障切换mha会做哪些动作:

    1)mha会多次尝试检测master的存活状态

    2)mha会多次尝试、尽可能的保存master的二进制日志

    3)mha会根据app1.cnf中的配置部分,进行从服务器------》 主服务器的位置

    4)mha最后会将master的VIP地址切换到从服务器的位置

    5)mha再选择完新的master之后,会在其余的salve上执行change master操作,指向性的master, 来保证Mysql的集群的健康性

    2、mha故障问题

    ① 软件连接必须要做

    ② mysql配置文件,/etc/my.cnf中的建议将中文字符集注释掉

    ③ 免交互必须得做

    ③ 五个账号授权(其中三个账号是测试环境需要做的)

    ④ 初次运行MHA功能是,需要临时添加虚拟IP

    ⑤ 配置文件–效验 (master_ip_failover 1个故障切换的脚本,app1.cnf mha的主配置文件)

    ⑥ 先安装node节点 再安装主节点。
    ⑦ app1.cnf 配置文件中,mysql的二进制文件位置,一定要指对。

    ⑧ mha的内存,建议4G以上,否则可能导致VIP地址无法漂移

    ----->新的 master)

    • **app1.conf配置文件:**mha的主要配置文件,主要定义了mha的工作目录、日志。
      mysql二进制日志位置
      用mha的登录mysql的用户、密码使用从服务器
      身份同步master的账号、密码 (五个)

    ④ 故障切换mha会做哪些动作:

    1)mha会多次尝试检测master的存活状态

    2)mha会多次尝试、尽可能的保存master的二进制日志

    3)mha会根据app1.cnf中的配置部分,进行从服务器------》 主服务器的位置

    4)mha最后会将master的VIP地址切换到从服务器的位置

    5)mha再选择完新的master之后,会在其余的salve上执行change master操作,指向性的master, 来保证Mysql的集群的健康性


     

  • 相关阅读:
    springboot如何集成mybatis呢?
    激发客户潜在需求
    MySQL基础进阶:汇总数据
    尚硅谷Java数据结构--希尔排序
    threejs: layers实现图层的显示隐藏切换
    STN向城域云网演进浅析
    攻防世界--fileclude && fileinclude && inget && easytornado
    【Python从入门到进阶】34、selenium基本概念及安装流程
    python中的图像增强技术
    Vue-diff算法和双向数据绑定原理
  • 原文地址:https://blog.csdn.net/ZWH9991/article/details/133786504