元月's blog 元月's blog
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多

元月

临渊羡鱼,不如退而结网
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多
  • MySQL

    • MySQL的存储引擎和索引结构
    • 一条SQL的平凡之路--执行篇
    • 一条SQL的平凡之路--优化篇
    • MySQL的事务、锁和MVCC机制
    • MySQL的主从复制原理详解
    • MySQL高可用架构
      • 一、MHA简介
      • 二、MHA工作原理
        • 2.1、MHA的组成
        • 2.2、MHA故障发现过程
        • 2.3、MHA的工作原理
    • ShardingJDBC读写分离与分库分表实战
  • Oracle

  • 数据库
  • MySQL
元月
2022-11-24
目录

MySQL高可用架构

# 一、MHA简介

MHA 是 Master High Availability 的缩写,直译过来就是“主机高可用”。它是一款当前主流的相对成熟的MySQL高可用方案之一,能做到在0~30s内自动完成MySQL的failover,在Master服务器不宕机的情况下,基本能保证数据的一致性

# 二、MHA工作原理

# 2.1、MHA的组成

  1. MHA Manager(管理节点)

    MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在master-slave集群中任意一台机器上,建议单独部署在一台独立的机器上。

  2. MHA Node(数据节点)

    MHA Node运行在每台MySQL服务器上,是MHA Manager的员工,接收Manager的命令并执行

# 2.2、MHA故障发现过程

  1. MHA会每3s向主节点发送一个select 1 的sql语句,看主节点能不能执行成功
  2. 如果连续ping3都无法通信的话,现在MHA就会认为主节点是存在问题的
  3. HMA manager会通知所有的从节点,slave1 MHA node,slave2 MHA node等,尝试使用SSH连接主节点
  4. 如果从节点也无法连接到服务器的时候,就会认为主节点挂掉了,就会执行failover的操作

# 2.3、MHA的工作原理

  1. 断掉VIP,断掉主从复制
  2. 从宕机崩溃的master保存二进制日志事件(binlog events)
  3. 识别含有最新更新的slave
  4. 应用差异的中继日志(relay log)到其他的slave
  5. 应用从master保存的二进制日志事件(binlog events)
  6. 提升一个slave为新的master
  7. 使其他的slave连接新的master进行主从复制,IP漂移

参考:

MySQL高可用方案之MHA (opens new window)

bili MHA高可用架构介绍及基础结构搭建 (opens new window)

#MySQL#数据库
MySQL的主从复制原理详解
ShardingJDBC读写分离与分库分表实战

← MySQL的主从复制原理详解 ShardingJDBC读写分离与分库分表实战→

最近更新
01
otter二次开发-支持按目标端主键索引Load数据
08-03
02
mvnw简介
06-21
03
gor流量复制工具
06-03
更多文章>
Theme by Vdoing | Copyright © 2022-2024 元月 | 粤ICP备2022071877号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式