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免认证登陆配置,存在一定的安全隐患
  • 没有提供从服务器的读负载均衡功能
相关推荐
我不会起名字32212 小时前
MySQL 深分页 LIMIT 1000000 卡死:3 种改写与 4 组实测对比
mysql·性能优化·索引·分页·limit
编程火箭车13 小时前
MySQL 拥抱 AI:向量、RAG、AutoML 全进了数据库
数据库·mysql·ai编程·向量数据库·rag·automl·mysql9
o_oer14 小时前
mysql type
mysql
花卷持续成长14 小时前
慢SQL的整体优化思路
后端·mysql
鱼很腾apoc14 小时前
【MySQL】第3期 索引、事务与视图系统详解
linux·mysql·事务·索引·dml·视图·macc
misty youth16 小时前
Navicat与PHPstudy小皮
mysql·adb·php·navicat
毕业设计70316 小时前
(免费领源码)SSM董家湾线上点餐系统04682- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·redis·mysql·tomcat·maven·mybatis·ssm
leaf9z16 小时前
阿里云rds查看所有库大小
mysql·阿里云
Yyyyyy~17 小时前
【Mysql】表的操作
数据库·mysql
Q264336502317 小时前
【有源码】基于SpringBoot+Vue的居民健康体检与慢病干预管理系统-面向智慧医疗的体检预约与健康知识服务平台
java·vue.js·spring boot·mysql·毕业设计·javaweb·课程设计