• mysql之MHA


    MHA(master hight availability)

    1、MHA:基于主库的高可用环境,主从复制(半同步复制),故障切换。

    2、基于主从的架构,最少一主两从

    3、MHA:解决mysql的单点故障问题,一旦主库崩溃,MHA可以在0-30秒内自动完成故障切换

    MHA的工作原理

    1、MHA使用的是半同步复制,只要有一台从服务器写入数据,就会自动提交给客户端

    2、如果master崩溃,slave会从主的二进制日志保存文件

    3、 slave会识别最新更新的日志,插一部分日志同步到slave,提升一个新的slave作为master,其他的slave继续和新的master同步

    实验过程

    1、MHA架构搭建

    (1)设备准备

    ①MHA master
    ②master
    ③slave1
    ④slave2
    ⑤node组件:
    需要部署在所有服务器上,manage组件依赖node组件,node组件监控mysql的状态
    node组件靠ssh来进行通信

    2、模拟故障

    3、故障恢复

    (四)MHA架构搭建

    1、修改主机名,ping主机名

    2、配置主从复制

    1修改Master、Slave1、Slave2 节点的 Mysql主配置文件/etc/my.cnf
    2)在 Master、Slave1、Slave2 节点上都创建两个软链接

    3所有数据库节点进行mysql授权

    4)在Master节点查看二进制文件和同步点

    5在 Slave1、Slave2 节点执行同步操作

    6)两个从库必须设置为只读模式

    (7)测试

    3、安装MHA

    1所有服务器都安装MHA的依赖环境,必须安装epel源

    安装依赖环境:

    2部署MHA(先安装node组件,再安装MHA)
    每台服务器都安装node组件:

    3)在MHA manager节点上安装manager组件

    补充:

    master组件

    masterha_check_ssh

    检查MHA的SSH的配置状况

    masterha_check_repl

    检查mysql的复制情况

    masterha_manager

    启动manager的脚本

    masterha_check_status

    检测MHA的运行状态

    masterha_master_monitor

    检测matser主机的情况,maters是否宕机。

    masterha_master_switch

    控制故障转移

    masterha_conf_host

    添加或者删除配置的server信息

    masterha_stop

    停止MAH脚本

    node组件

    save_binary_logs

    保存和复制mater的二进制日志

    apply_diff_relay_logs

    识别二进制日志当中的差异事件,然后发送给其他的slvae

    filter_mysqlbinlog

    去除不必要的回滚(MHA已经不用了)

    purge_relay_logs

    同步之后清楚中继日志 (不会阻塞sql的线程)

    4node依赖ssh通信,在所有服务器上配置免密登录
    ①在manager节点上配置到所有数据库节点的免密登录

    ②在slave1上配置到数据库节点master和slave2的免密登录

    ssh-keygen -t rsa

    ssh-copy-id 20.0.0.21

    ssh-copy-id 20.0.0.23

    ③在slave2上配置到数据库节点master和slave1的免密登录

    ssh-keygen -t rsa

    ssh-copy-id 20.0.0.21

    ssh-copy-id 20.0.0.22

    ④在master上配置到数据库节点 slave1 和 slave2 的无密码认证

    ssh-keygen -t rsa

    ssh-copy-id 20.0.0.22

    ssh-copy-id 20.0.0.23

    (5)在manager节点上配置 MHA

    master_ip_failover

    自动切换时 VIP 管理的脚本

    master_ip_online_change

    在线切换时 vip 的管理

    power_manager

    故障发生后关闭主机的脚本

    send_report

    因故障切换后发送报警的脚本

    ①修改内容如下:(删除原有内容,直接复制并修改vip相关参数)

    ②创建MHA的软件目录

    (6)第一次配置需要在Master节点上手动开启虚拟IP

    (7)manage节点上进行测试
    ①测试ssh通信是否正常

    ②检测整个MHA主从连接是否正常

    (8)启动MHA

    --remove_dead_master_conf

    表示发生主从切换,老的主库的ip地址会从文件中删除

    /var/log/masterha/app1/manager.log

    MHA的管理日志

    --ignore_last_failover

    表示只要发生宕机就会切换,忽略时间间隔(默认配置:若MHA检测到连续发生宕机,而且宕机的时间间隔不足8小时,不会进行自动切换)

    (五)模拟故障

    1、关闭主库服务器

    (六)故障恢复

    1、编辑主库的my.cnf(将原主变为从)

    2、编辑从库的my.cnf(将原从变为主)

    3、关闭manager服务

    4、修改manager的app1.cnf配置文件

    5、重启主从mysql服务和manager服务

    6、进入主从数据库,赋权

    7、测试

  • 相关阅读:
    低代码开发之腾讯云微搭工具
    Eolink 旗下网关产品各版本功能及性能对比
    Django ModelForm中使用钩子函数校验数据
    Python自动化测试之request库(四)
    国内外最顶级的8大plm项目管理系统
    Unity Meta Quest 一体机开发(六):HandGrabInteractor 和 HandGrabInteractable 知识点
    FPGA是什么呢,通透讲解单片机和FPGA的区别
    C++容器之unordered_map、unordered_set的底层剖析
    学习自定义SpringBoot Starter组件 (超详细的图文教程,从理论到实战)
    camera项目相关路径
  • 原文地址:https://blog.csdn.net/weixin_48145965/article/details/134402169