MySQL

MySQL 高可用方案

·4 分钟阅读·1511 字

理论篇 — 架构方案对比

📋 目录

MySQL 高可用方案

理论篇 — 架构方案对比

1. 高可用核心目标

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

2. 主流高可用方案

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)

适用:简单、低成本场景

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

3. 方案对比总结

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

4. 企业最主流方案(2025+ 标准)

MySQL 8.0 + MGR(单主)+ MySQL Router

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

5. 高可用必须开启的关键配置


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';

6. 面试一句话总结

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


关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro