【DB宝19】在Docker中使用MySQL高可用之MHA

0    5075    9

Tags:

👉 本文共约4808个字,系统预计阅读时间或需19分钟。

[toc]

一、MHA简介和架构

1.1 MHA简介

MHA(Master High Availability Manager and tools for MySQL)目前在MySQL高可用方面是一个相对成熟的解决方案,它是由日本人youshimaton采用Perl语言编写的一个脚本管理工具。MHA是一套优秀的作为MySQL高可用性环境下故障切换主从提升的高可用软件。MHA仅适用于MySQL Replication环境,目的在于维持Master主库的高可用性。在MySQL故障切换过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能最大程度上保证数据库的一致性,以达到真正意义上的高可用。

目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群必须最少有3台数据库服务器,一主二从,即一台充当Master,一台充当备用Master,另一台充当从库。

1.2 MHA工具包的组成

MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以独立部署在一台独立的机器上管理多个Master-Slave集群,也可以部署在一台Slave上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中Master节点。当Master出现故障时,它可以自动将具有最新数据的Slave提升为新的Master,然后将所有其他的Slave重新指向新的Master。整个故障转移过程对应用程序是完全透明的。MHA node运行在每台MySQL服务器上,它通过监控具备解析和清理logs功能的脚本来加快故障转移的。

Manager工具包情况如下:

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

Node工具包(通常由MHA Manager的脚本触发,无需人工操作)情况如下:l

  • save_binary_logs:保存和复制Master的binlog日志。
  • apply_diff_relay_logs:识别差异的中级日志时间并将其应用到其他Slave。
  • filter_mysqlbinlog:去除不必要的ROOLBACK事件(已经废弃)
  • purge_relay_logs:清除中继日志(不阻塞SQL线程)

1.3 MHA架构

本文所使用的MHA架构规划如下表:

IP主机名作用Server IDPort类型备注
192.168.68.131MHA-LHR-Master1-ip131master node5733061313306写入对外提供写服务
192.168.68.132MHA-LHR-Slave1-ip132slave node1 (Candicate Master)573306132备选Master提供读服务
192.168.68.133MHA-LHR-Slave2-ip133slave node2573306133提供读服务
192.168.68.134MHA-LHR-Monitor-ip134Monitor host监控其它机器,一旦Mater宕机,将会把备选Master提升为新的Master,而将Slave指向新的Master
192.168.68.135VIP在131和132之间进行浮动漂移
MySQL数据库版本:MySQL 5.7.30,MySQL节点端口都是3306,各自的server_id不一样

MHA切换前和切换后的架构图:

二、准备MHA环境

2.1 下载MHA镜像

一共4个镜像,3个MHA Node,一个MHA Manager,压缩包大概3G,下载完成后:

2.2 编辑yml文件,创建MHA相关容器

编辑yml文件,使用docker-compose来创建MHA相关容器,注意docker-compose.yml文件的格式,对空格、缩进、对齐都有严格要求:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复