• 四十四、MHA工作原理


    MHA软件包含如下工具

    Manager工具包
    mha4mysql-manager-0.56-0.el6.noarch.rpm

    masterha_manger        启动MHA 
    masterha_check_ssh     检查MHA的SSH配置状况 
    masterha_check_repl    检查MySQL复制状况 
    masterha_master_monitor  检测master是否宕机 
    masterha_check_status   检测当前MHA运行状态 
    masterha_master_switch  控制故障转移(自动或者手动)
    masterha_conf_host      添加或删除配置的server信息
    

    Node工具包
    mha4mysql-node-0.56-0.el6.noarch.rpm
    这些工具通常由MHA Manager的脚本触发,无需人为操作

    save_binary_logs        保存和复制master的二进制日志 
    apply_diff_relay_logs   识别差异的中继日志事件并将其差异的事件应用于其他的
    purge_relay_logs        清除中继日志(不会阻塞SQL线程)
    

    MHA工作原理

    也叫MHA FailOver过程,FailOver意为故障转移
    1、使用masterha_manger脚本启动MHA
    2、manager通过masterha_master_monitor脚本(默认4次,间隔ping_interval秒)检测主库是否存活
    3、当主库宕机后,选择新的主库(选主过程后续介绍)
    4、新主库进行日志恢复,使其数据最接近故障主库的状态
    5、使用masterha_conf_host脚本剔除故障主库,建立新主从关系

    选主过程

    1、查看配置文件中备选主参数,也就是优先级

    $ cat /etc/mha/app1.cnf
    ...
    [server2]
    hostname=10.154.0.112
    port=3306
    candidate_master=1  #设置该服务器为备选主库
    check_repl_delay=0  #不检查该从库日志量,不设置此参数当备选主库日志量少于故障主库时(通常为100M日志量),不会被选择为新主库
    

    2、选择日志量最接近主库的从库为新主库
    3、当日志量一致时,按照配置文件/etc/mha/app1.cnf先后顺序的进行选新主库

    日志恢复过程

    1、当能SSH到故障主库时
    调用save_binary_logs脚本,立即保存缺失部分的binlog到各个从节点进行恢复

    2、当不能SSH到故障主库时
    调用apply_diff_relay_logs脚本,计算各从库的relaylog的差异,再在备选主库上恢复

    学习来自:B站课程:搭建MHA高可用 P145-146,《MySQL入门与提高实践》第18章

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    Flash Builder 使用
    解决谷歌地图偏移问题
    南京垃圾处理场分布图-益云地图
    在Oracle Spatial中增加Web Mercator投影坐标系
    学习和使用 Styled Layer Descriptor SLD样式文件
    jmeter安装教程
    Linux常见命令更新中...
    Python并发编程(线程队列,协程,Greenlet,Gevent)
    Python并发编程(线程,Threading模块,守护线程,gil锁,)
    Python并发编程(管道,数据共享,信号量,进程池)
  • 原文地址:https://www.cnblogs.com/tz90/p/14669613.html
Copyright © 2020-2023  润新知