MySQL高可用

MySQL 高可用集群

一、核心概念

  • 高可用(HA) :保障数据库服务持续在线、数据不丢失,核心指标 RTO(恢复时间)RPO(数据丢失量)
  • 主流方案主从复制(基础)MGR(官方原生强一致)MHA(主从自动切换)PXC/Galera(多主同步)

二、方案对比(生产选型)

1. 主从复制(Master-Slave)

  • 原理:主库写 binlog,从库异步 / 半同步重放,一主多从、读写分离。
  • 优点:简单、兼容好、性能高、成本低。
  • 缺点自动切换需外部工具、异步有数据丢失风险。
  • 适用:中小业务、非核心、读写分离。

2. MGR(MySQL Group Replication)

  • 原理 :基于 Paxos 共识,多数派确认提交,单主 / 多主模式。
  • 优点强一致(RPO=0)、自动选主、故障自愈、原生支持。
  • 缺点:仅 InnoDB、必须主键、对大事务敏感、网络要求高。
  • 适用核心交易、金融、高可靠场景

3. MHA(Master High Availability)

  • 原理 :主从 + Manager 节点,自动探测、选最优从库升主
  • 优点:切换快(秒~分钟)、支持多引擎、兼容旧版。
  • 缺点:Manager 单点、需 SSH 互信、版本停更(2018)。
  • 适用:已有主从、需低成本自动切换。

4. PXC(Percona XtraDB Cluster)

  • 原理 :Galera 同步复制、多主全可写、强一致。
  • 优点:去中心化、无单点、多活、延迟低。
  • 缺点:仅 InnoDB、性能受最慢节点影响、DDL 受限。
  • 适用:多机房、高并发写入、强一致。

方案速览

表格

方案 一致性 切换 复杂度 场景
主从 弱 / 半同步 手动 / MHA 通用、读写分离
MGR 强一致 自动(秒级) 核心、金融
MHA 半同步 自动(秒级) 主从升级
PXC 强一致 自动(秒级) 多活、高并发

三、MGR 集群(重点)

1. 核心特性

  • 模式单主(推荐)(一主多从只读)、多主(全节点可写)。
  • 节点数3/5/7 奇数节点(防脑裂),最大 9 个。
  • 要求 :MySQL 5.7+、GTID=ON、binlog=ROW、InnoDB、主键。
  • 通信端口:3306(业务)+33061(组通信)。

2. 关键配置(my.cnf)

ini

复制代码
[mysqld]
server-id=1
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_format=ROW
log_slave_updates=ON
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64

# MGR
plugin_load_add=group_replication.so
group_replication_group_name="UUID"
group_replication_local_address="IP:33061"
group_replication_group_seeds="IP1:33061,IP2:33061,IP3:33061"
group_replication_single_primary_mode=ON  # 单主
group_replication_bootstrap_group=OFF

3. 部署步骤

  1. 安装 MySQL 8.0、配置 hosts、关闭防火墙 / SELinux。
  2. 所有节点配置 my.cnf、启动 MySQL。
  3. 安装 MGR 插件、创建复制用户。
  4. 首节点引导集群(bootstrap=ON),其他节点加入。
  5. 查看集群状态:SELECT * FROM performance_schema.replication_group_members;

4. 故障切换

  • 主库宕机:自动选举新主(秒级),业务短暂中断。
  • 原主恢复:自动加入为从节点(SECONDARY)
  • 脑裂防护:多数派机制(>N/2 节点存活)。

5. 生产最佳实践

  • 单主模式优先、节点 3 个、网络延迟 < 5ms。
  • 禁止大事务(<5MB)、拆分批量 DML、避开高峰 DDL。
  • 监控:成员状态、复制延迟、流控、事务异常。

四、主从 + MHA(经典方案)

1. 架构

  • 1 主 2 从、MHA Manager(独立节点)、VIP+Keepalived。
  • 主故障:自动选最新从库升主、切换 VIP、其他从库指向新主。

2. 核心配置

  • 主从开启半同步GTID
  • MHA 配置文件定义主从、用户、VIP、切换脚本。
  • 节点间SSH 免密

3. 优缺点

  • 优:成熟、切换快、兼容好、成本低。
  • 缺:Manager 单点、维护复杂、无官方更新。

五、高可用关键组件

1. 读写分离

  • ProxySQL/MaxScale/MySQL Router:读写路由、负载均衡、故障屏蔽。
  • 应用层:写主库、读从库。

2. 负载均衡与 VIP

  • LVS/HAProxy/Keepalived:提供统一入口、故障漂移。

3. 监控告警

  • Prometheus+Grafana+Alertmanager:监控连接数、延迟、状态、磁盘、CPU。

六、生产选型建议

  1. 中小业务 / 非核心:主从 + 读写分离 + 手动切换。
  2. 核心 / 金融 / 高可靠MGR 单主(3 节点)+MySQL Router + 监控
  3. 已有主从、低成本升级:MHA+Keepalived。
  4. 多机房 / 多活写入:PXC/Galera。

七、常见问题与避坑

  • MGR 大事务 :提交超时、节点卡住 → 拆分事务
  • 脑裂 :网络分区双主 → 奇数节点 + 多数派
  • 数据不一致 :主从异步丢失 → MGR 强一致 / 半同步
  • 性能损耗:MGR 共识、PXC 同步 → 合理分片、优化事务。

八、总结

  • MGR 是 MySQL 官方高可用标准方案,强一致、自动切换,适合核心业务。
  • 主从 + MHA成熟稳定、成本低,适合存量架构。
  • 高可用 =架构冗余 + 自动切换 + 数据一致 + 完善监控
相关推荐
智能运维指南10 分钟前
2026年ITSM系统怎么选?四款主流方案与五维评估模型
运维·itsm·嘉为蓝鲸
我命由我1234522 分钟前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
骇客野人22 分钟前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器
迪康Defender43 分钟前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
一 乐1 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
zly35001 小时前
VMware Converter Standalone 物理机转化为虚拟机后源1硬盘变成了2个硬盘(2个硬盘文件)虚拟机无法启动。
linux·运维·服务器
SelectDB1 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
hai_android1 小时前
Kotlin / Android 常用函数使用示例手册
android·java·kotlin
这个DBA有点耶2 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
智能运维指南2 小时前
2026 企业智能运维平台选型:私有化、信创、全链路打通该怎么权衡?
运维·嘉为蓝鲸·aiops平台·一体化运维平台