MySQL

MySQL 高可用方案

·4 分钟阅读·1533 字
📋 目录

MySQL 高可用方案

理论篇 — 架构方案对比

一、高可用核心目标

  • 无单点故障
  • 故障自动切换(秒级)
  • 数据不丢失 / 少丢失
  • 对应用透明

二、主流高可用方案

1. 主从 + MHA(经典方案)

适用:MySQL 5.7 / 8.0

原理:一主多从 + 自动故障切换工具

项目说明
一致性最终一致
切换方式自动
复杂度
生产推荐中小公司

优点:成熟稳定、简单、切换快(秒级)、不侵入 MySQL

缺点:需要虚拟 IP(VIP)、不能保证零数据丢失(依赖半同步)

2. 主从 + MGR(MySQL 官方推荐,8.0 首选)

原理:MySQL Group Replication(组复制),多节点集群,Paxos 协议,强一致、自动选主、故障自动切换

项目说明
一致性强一致
切换方式自动
复杂度中低
生产推荐官方首选

优点:官方原生、强一致(无数据丢失)、自动切换与选主、支持多写/单主模式

缺点:对网络质量要求高、必须 InnoDB、必须主键

3. PXC(Percona XtraDB Cluster)

原理:多主架构,强一致,无主从概念

项目说明
一致性强一致
切换方式自动
复杂度
生产推荐金融/高可用

优点:任何节点都可写、强一致同步复制、故障自动剔除

缺点:性能不如主从、不支持超大事务、网络不能抖动

4. 主从 + 中间件(Keepalived + VIP)

适用:简单、低成本场景

项目说明
一致性弱一致
切换方式半自动
复杂度
生产推荐简单业务

三、方案对比总结

方案一致性切换复杂度生产推荐
主从 + MHA最终一致自动中小公司
MGR强一致自动中低官方首选
PXC强一致自动金融/高可用
Keepalived + VIP弱一致半自动简单业务

四、企业最主流方案(2025+ 标准)

MySQL 8.0 + MGR(单主)+ MySQL Router

  • 强一致
  • 自动故障转移
  • 对应用透明
  • 官方支持、无坑

五、高可用必须开启的关键配置

sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
plugin_load_add = "group_replication.so"   # MGR

半同步复制(主从必开)

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

六、面试一句话总结

MySQL 高可用主流方案有 MHA、MGR、PXC、Keepalived。中小型公司用 MHA,中大型企业推荐官方 MGR,金融等高一致场景用 PXC。核心是消除单点、自动切换、数据强一致。


关联文档