Percona XtraDB Cluster 8.4.11-11 介绍与选型指南

Percona XtraDB Cluster(PXC)——基于 Galera 同步复制的 MySQL 多主集群全认知:核心架构、功能特性、适用边界,以及与 MySQL InnoDB Cluster/MariaDB Galera Cluster/NDB Cluster 的量化选型对比(2026-10-20 官方源实查)。

Percona XtraDB ClusterPercona XtraDB ClusterMySQL数据库2026/10/20

Percona XtraDB Cluster 8.4.11-11 介绍与选型指南

目标:全面认知 Percona XtraDB Cluster(PXC)——基于 Galera 同步复制协议的 MySQL 多主集群方案,给出核心架构、功能特性、适用边界,并与 MySQL InnoDB Cluster(组复制)、MariaDB Galera Cluster、MySQL NDB Cluster 做量化选型对比。本文为认知篇,全部事实均来自官方源联网溯源,查询日期 2026-10-20,未包含本地实测数据。

一、环境信息

本篇为纯联网溯源的认知文档,溯源环境与来源清单如下:

  • 溯源日期:2026-10-20(下文所有版本号、日期、指标均以该日查询为准)
  • 官方文档站:docs.percona.com/percona-xtradb-cluster/8.4/(Percona 官方,英文)
  • 官方发布渠道:repo.percona.com(APT/YUM 官方软件仓库)
  • GitHub 仓库:github.com/percona/percona-xtradb-cluster(星数经 shields.io 徽章取证)
  • 生命周期政策页:percona.com/release-lifecycle-overview/
  • 同类产品官方文档:dev.mysql.com/doc/refman/8.4/en/(组复制、NDB 集群)、mariadb.com/kb/en/galera-cluster/
  • 适用读者:需要为 MySQL 生态选型高可用/多写集群架构的 DBA 与后端架构师

二、软件概述

2.1 一句话定位

Percona XtraDB Cluster(简称 PXC)是 Percona 公司出品的 MySQL 同步多主集群解决方案:把多个 MySQL 节点组成一个集群,任意节点都能读写,写入在一个节点提交时即同步复制并认证通过到所有节点,任一节点宕机不丢已提交数据,新节点加入时自动全量同步数据。

2.2 组成与血统

PXC 不是从零写成的数据库,而是三个组件的组合:

组件作用来源
Percona Server for MySQL 8.4数据库本体(增强版 MySQL)Percona 维护,GPLv2
Galera 库(libgalera_smm.so)同步复制与集群成员管理(wsrep provider)源自 Codership Oy,Percona 维护分支
wsrep APIMySQL 内核与 Galera 之间的写集复制接口Codership 发起的标准接口

2026-10-20 实查官方文档站的版本事实:

  • 最新稳定版:Percona XtraDB Cluster 8.4.11-11,发布于 2026-10-05,基于 Percona Server for MySQL 8.4.11-11(2026-08-20)与 MySQL 8.4.11(官方 release notes:docs.percona.com/percona-xtradb-cluster/8.4/release-notes/8.4.11-11.html)。
  • Percona 版本号采用「MySQL 基线-Galera 补丁」双段格式(如 8.4.11-11),官方有专页解释(xtradb-cluster-version-number)。
  • 8.0 系列已停止维护:Percona Distribution for MySQL 8.0.46(PXC 8.0.46-38)是 8.0 系列最后一个标准版本(官方公告 2026-07-23:「MySQL 8.0 has officially reached End of Life (EOL)」),生命周期政策页明确 PS 8.0 EOL 为 2026-04-01,PXC 8.0 同步终止。
  • 当前唯一活跃维护线是 8.4 LTS;percona-release 工具中 9.7 系列仓库(pxc-97-lts)在 2026-10-20 查询时尚未在公共仓库开放,9.x 尚未 GA。

8.4 LTS 系列发布节奏(官方 release notes 归档,可看出约每季度一个版本的稳定节奏):

版本发布日期
8.4.2-22024-12-11
8.4.3-32025-01-21
8.4.4-42025-04-16
8.4.5-52025-07-14
8.4.6-62025-10-06
8.4.7-72026-01-13
8.4.8-82026-04-16
8.4.10-102026-07-27
8.4.11-112026-10-05

💡 关键解读:约一个季度一版的节奏在 8.4 系列保持了两年,属于「低频高稳」的 LTS 维护策略;8.0 → 8.4 的换代不是新特性驱动,而是跟随 Oracle MySQL 8.0 EOL(2026-04)的基线迁移。选型时应直接选 8.4 最新版,不要再基于 8.0 部署新集群。

2.3 社区与维护方

  • 维护方:Percona(全球主流 MySQL 咨询/支持公司,同时维护 Percona Server、Percona XtraBackup、Percona Toolkit、PMM 监控),PXC 属于 Percona Distribution for MySQL(PXC 变体)的核心。
  • 许可证:GPLv2(与 MySQL 社区版同源许可,可自由商用)。
  • GitHub 活跃度:percona/percona-xtradb-cluster 仓库 391 stars(shields.io 徽章取证,查询日期 2026-10-20)。星数偏低的客观原因:Galera 复制库的核心开发在 Codership/Galera 仓库与 Percona Server 仓库中进行,PXC 主仓库主要承载打包与补丁,属于「组装型」仓库,不能单凭星数判断该方案的社区规模——Percona 的技术博客、论坛与付费支持体系才是其主要社区阵地。
  • 与上游关系:Galera 库原厂 Codership 已于 2025-05 被 MariaDB plc 收购(Percona 官方博客 2026 年文章《Your Galera cluster's hardest problem was never the replication library》披露),面向 MySQL 的 Galera Cluster(Codership 原厂发行版)支持已于 2026-09-30 终止;PXC 使用 Percona 自己维护的 Galera 分支(8.4.11-11 内置 Galera 4.27),不受该 EOL 影响,这也是选 PXC 而非原厂 Galera 的关键理由。

三、核心架构

3.1 分层结构

PXC 的每个节点在内核里分成三层(官方架构文档 intro.html/high-availability.html):

应用 / MySQL 协议客户端
      │
┌─────┴──────────────────────────────┐
│ mysqld(Percona Server 8.4)        │  SQL 层 + InnoDB 存储引擎
│   wsrep API hooks(写集捕获/回放)   │
├────────────────────────────────────┤
│ Galera 库(libgalera_smm.so)       │  写集认证 Certification、
│   GCS 组通信(gcomm)、gcache      │  复制、流控、成员管理
└────────────────────────────────────┘
      │  4567 端口(组通信,TLS)
      ├── 节点 A(真多主,每个节点都是 Primary)
      ├── 节点 B
      └── 节点 C
  • 写路径:事务在本节点执行并持有写集(行级变更集合),提交时 Galera 把写集广播到所有节点;每个节点(包括本节点)对写集做认证(Certification)——基于主键版本的乐观并发检查;认证通过后各节点本地应用,事务对客户端返回提交成功。
  • 认证失败即回滚:如果两个节点并发修改同一行,后提交者的写集认证失败,返回 1213 死锁类错误(多主写冲突的代价,见 6.2 节限制)。
  • 提交时序:wsrep_sync_wait/因果读可保证读到自己提交的数据;默认所有节点最终一致于同一全局顺序(totem 单一顺序,gcomm 实现)。

3.2 数据同步:SST 与 IST

新节点加入或落后过多时,数据恢复有两种路径(官方 SST 文档):

方式触发条件机制特点
IST(Incremental State Transfer)落后量还在 donor 的 gcache 里(默认 128MB 环形缓冲)从 gcache 增量重放缺失事务秒级,不阻塞 donor
SST(State Snapshot Transfer)落后超过 gcache / 全新节点全量数据快照传输小时级,donor 传输期间对写不可用(donor-own)
SST 实现:xtrabackup-v2默认Percona XtraBackup 物理备份流成熟稳定,需安装 pxb
SST 实现:clone8.0.17+ 可选MySQL 原生 Clone 插件8.4 推荐,远程克隆走 SQL 通道

💡 技术拓展:「集群数据初始化/追赶」不止 Galera 的 SST/IST 一家。常见对比——

方案机制适用场景
Galera SST/IST全量快照 + gcache 增量PXC/MariaDB Galera 节点加入
MySQL 复制(binlog)主库 binlog dump → 从库重放主从/组复制的传统追赶
Clone Plugin物理页级远程克隆MySQL 8.0+/组复制成员重建
逻辑快照恢复mysqldump/XtraBackup 手工导入跨大版本、无集群通道时

PXC 实际同时具备两种:默认 xtrabackup-v2,官方新推 clone(docs.percona.com/percona-xtradb-cluster/8.4/clone-sst.html),本文部署系列默认采用 xtrabackup-v2 并验证 clone 备选。

3.3 高可用与仲裁

  • 成员管理与仲裁:gcomm(GCS)基于扩展虚拟同步算法维护成员视图,节点失联超过 evs.inactive_timeout(默认 15 秒)被移出视图;网络分区时按节点权重多数派(Primary Component)决定谁继续服务,少数派自动停止查询(wsrep_cluster_status != Primary),避免脑裂双写——这是同步多主方案的核心安全设计。
  • 推荐规模:官方建议奇数节点(3、5),3 节点可容忍 1 节点故障;两节点集群无法自主仲裁,需要引入 garbd 仲裁节点(arbitrator,无数据参与投票)。
  • 故障转移无需切换:因为每个节点都可写,客户端侧通过负载均衡(HAProxy/ProxySQL,官方配套 clustercheck 健康检查脚本与 proxysql-admin 工具)把流量分散到健康节点,不存在主库切换动作。

四、功能特性

以下特性表整理自官方文档站首页特性清单(docs.percona.com/percona-xtradb-cluster/8.4/,查询日期 2026-10-20):

特性官方说明
同步复制数据同时写入所有节点,或因任何节点失败而不写入(commit-or-not-all 语义)
多源/多主复制任意节点都能发起数据更新
真正并行复制从(应用)线程多线程按行级重放(wsrep_applier_threads)
自动节点供给新节点加入即自动全量同步(SST),无需人工备份恢复
数据一致性无需担心节点间数据不同步(认证复制保证)
PXC Strict Mode阻止使用不受支持/技术预览特性(pxc_strict_mode,默认 ENFORCING)
ProxySQL 自动配置内置 proxysql-admin 工具一键把集群节点注册到 ProxySQL
集群流量自动加密pxc-encrypt-cluster-traffic 自动生成并配置 SSL,节点间通信默认加密
性能优化针对生产负载随规模扩展做了优化(官方 How We Made PXC Scale 博客)

8.4.11-11 版本自身的新变化(官方 release notes 8.4.11-11):

  • PXC-5106:pxc_strict_mode=ENFORCING/MASTER 时全局自动启用 sql_require_primary_key=ON,无主键表直接禁止创建(此前可建表但无法 DML)。
  • PXC-5208:新增 Galera provider 选项 repl.force_sst_after_inconsistency,节点因数据不一致被逐出或 IST 应用失败时,下次启动强制走 SST 而不是 IST,确保数据集一致(默认关闭,可运行时经 wsrep_provider_options 修改)。
  • PXC-5252:修复 Clone SST 在 validate_password 组件严格密码策略下失败的问题(donor 的临时 SST 用户不再受密码校验,并支持 [sst] 段 sst-password-suffix 选项)。

五、快速开始(官方最小路径)

以下为官方 quickstart/install 文档(docs.percona.com/percona-xtradb-cluster/8.4/install-index.html)给出的 Ubuntu 路径骨架,供认知验证;完整逐步实测见本系列《Ubuntu 22.04 安装 Percona XtraDB Cluster 8.4.11-11 指南》与《Percona XtraDB Cluster 8.4.11-11 3 节点集群部署指南》。

# 1) 安装 percona-release 仓库管理工具(Ubuntu/Debian)
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
dpkg -i percona-release_latest.generic_all.deb

# 2) 启用 PXC 8.4 LTS 官方仓库
percona-release setup pxc84lts

# 3) 安装 PXC(Ubuntu 22.04 jammy,包名不带版本后缀)
apt update && apt install -y percona-xtradb-cluster

# 4) 首节点写入集群配置后以 bootstrap 方式拉起新集群
systemctl start mysql@bootstrap.service

💡 说明:第 4 步 mysql@bootstrap.service 是 Debian/Ubuntu 包自带的 systemd 模板单元(/lib/systemd/system/mysql@.service,配合 /etc/default/mysql.bootstrap 的 EXTRA_ARGS=" --wsrep-new-cluster "),仅在建立新集群的第一个节点使用;其余节点用普通 mysql.service 启动并自动加入。这一流程在本系列部署篇中逐节点实测验证。

六、适用场景与限制

6.1 适用场景

  1. 读多写少、要求强一致读:任何节点都能读到已提交的最新数据(同步复制),适合把读流量分散到多节点的 OLTP 系统。
  2. 要求 RPO=0 的高可用:主库宕机不丢已提交事务(对比异步主从的秒级数据丢失窗口),金融、订单、计费类系统常用。
  3. 在线 Schema 变更要求零停机:结合 pt-online-schema-change 与 PXC 的 TOI/RSU 模式做滚动 DDL。
  4. 中小规模(3~5 节点)同城机房:写吞吐受限于最慢节点(流控),单机房内延迟 <1ms 时表现最佳。

6.2 官方限制(选型前必须知道)

以下出自官方 limitations 文档(docs.percona.com/percona-xtradb-cluster/8.4/limitation.html,查询日期 2026-10-20):

  1. 存储引擎只支持 InnoDB(MyISAM 等非事务引擎不受支持,仅实验性)。
  2. 每张表必须有主键:8.4.11 起 ENFORCING 模式下无主键表直接禁止创建(PXC-5106)。
  3. 不支持超大事务/大行:写集大小受 wsrep_max_ws_size 限制,大批量 DML 会认证失败或触发流控,官方不建议一次写超过 1GB(旧版上限)。
  4. 不支持 XA 事务与锁表跨节点语义:LOCK TABLES/GET_LOCK 只在本节点有效。
  5. DDL 阻塞全集群:默认 TOI 模式下 DDL 在所有节点串行执行,期间集群整体写性能下降;wsrep_OSU_method=RSU 可单节点执行但需人工逐台滚动。
  6. 写吞吐受最慢节点限制(流控):某一节点磁盘慢会拖慢全集群提交速率(wsrep_flow_control_paused 监控)。
  7. 不支持直接读写 binlog 的部分特性组合:binlog 仅用于兼容外部工具,集群间不靠 binlog 复制。
  8. 节点数建议 ≤ 15(官方 FAQ 口径),实际生产推荐 3 或 5 个数据节点 + garbd/ProxySQL 辅助。

七、同类选型对比(量化)

7.1 四大方案横向对比

对比对象:PXC(本文主角)、MySQL InnoDB Cluster(官方组复制方案)、MariaDB Galera Cluster(同源竞品)、MySQL NDB Cluster(官方内存型分布式)。各列事实来源:Percona 官方文档(2026-10-20 查询)、dev.mysql.com 8.4 参考手册、mariadb.com 知识库。

维度Percona XtraDB Cluster 8.4MySQL InnoDB Cluster(Group Replication)MariaDB Galera ClusterMySQL NDB Cluster
架构本质Galera 同步认证复制 + 多主Paxos 变体(XCom)组复制,可选单主/多主Galera 同步认证复制 + 多主(同源不同发行)共享无(Shared-nothing)分片内存数据库,自动分片+同步副本
复制协议写集广播 + 认证(乐观并发)共识日志(consensus log)+ 多数派提交同 PXC(同一 Galera 血统)两阶段提交 + 分区/副本组(NUMA 友好)
多主写原生全节点多主多主模式可用但主键冲突需应用兜底;生产多为单主同 PXC任何 SQL 节点可写(内部路由到主分片)
数据一致性同步(提交即全集群可见,RPO=0)同步多数派(RPO=0,认证库保主键唯一)同步(同 PXC)同步副本 + 最终按分片提交
节点加入/重建自动 SST/IST(xtrabackup-v2 或 clone)需要 clone plugin / 备份恢复(Incremental Recovery)自动 SST/IST自动分片再分布
失败检测/仲裁EVS 内建,少数派停止服务内建多数派(同 PXC 思想)同 PXC内建(nodegroup 级)
典型规模3~5 数据节点(官方 ≤15)3~9 成员3~5 节点数据节点 2~48+,可线性扩展
外置依赖HAProxy/ProxySQL + clustercheckMySQL Router + MySQL Shell(必备三件套)同 PXC 生态自带 SQL/API 节点与 mgmd 管理节点
版本基线(2026-10-20)8.4.11-11(2026-10-05)MySQL 8.4 LTS / 26.7 新版本纪元MariaDB 11.x(含 Galera 26.4)MySQL NDB 8.4 LTS / 9.x
维护现状Percona 活跃维护(自研 Galera 分支)Oracle 官方主推 HA 方案MariaDB plc 维护(其收购的 Codership 对 MySQL 版 Galera 已 EOL 2026-09-30)Oracle 官方(社区版免费,电信级场景)
许可GPLv2GPLv2(企业版另算)GPLv2GPLv2(企业版另算)
运维复杂度中(无 Router,但需懂流控/SST)中高(Router+Shell+GR 语义)中(同 PXC)高(分片设计、内存容量规划)

7.2 关键差异解读

  1. PXC vs MySQL InnoDB Cluster(组复制):两者都做到 RPO=0,但 PXC 是「全节点可写 + 提交即传播」,组复制生产上以单主为主(多主模式对主键冲突的处理是「提交后才发现」,需应用层兜底)。PXC 不需要 MySQL Router/Shell 这两个额外组件,用普通 MySQL 协议 + 任意代理即可;组复制胜在与官方版本同步、认证库对大事务更宽容(group_replication_transaction_size_limit 默认 150MB 远大于 Galera 写集上限)、且有 Shell 的dba.rebootClusterFromCompleteOutage等自动化运维命令。
  2. PXC vs MariaDB Galera Cluster:同一 Galera 血统的两个发行。PXC 底层是 Percona Server(含 XtraDB 引擎增强、更细的监控项),MariaDB 版是 MariaDB Server;2025-05 MariaDB 收购 Codership 后,面向 MySQL 的 Galera 发行版已停更(2026-09-30 EOL),继续走 Galera 路线在 MySQL 生态里实际只剩 PXC 一条主线——这是本次选型对比里最有分量的结论。
  3. PXC vs MySQL NDB Cluster:NDB 是电信级内存分片库,写可线性扩展、亚毫秒读,但 SQL 兼容性、join 能力、事务大小与 InnoDB 生态工具链差距大,且数据集受内存约束;PXC 则是「InnoDB 完全兼容、换集群不换应用」,代价是写吞吐不随节点数扩展(流控让所有节点顺序提交同一写集)。
  4. 一票否决项速查:要求跨地域(WAN 延迟 >10ms)→ 都别选 PXC/Galera(同步协议放大延迟),选组复制(半同步语义)或异步复制;要求写水平扩展 → 选 NDB 或分库分表;只要读扩展+RPO=0+InnoDB 兼容 → PXC 是当前 MySQL 生态最省心的答案。

7.3 选型建议(如果…则…)

  • 如果你在 Ubuntu/Debian 上需要 3 节点强一致 MySQL 集群,应用以中小事务 OLTP 为主 → PXC 8.4.11-11(本系列部署篇完整实测)。
  • 如果你们团队已经标准化 Oracle 官方技术栈(Shell/Router/企业版支持合同)→ InnoDB Cluster。
  • 如果你们已经是 MariaDB Server 用户 → MariaDB Galera Cluster(但注意其上游 Galera 库的维护归属变化)。
  • 如果业务是高频小事务、写 QPS 需要随节点数线性涨(会话存储、号码路由、实时风控)→ NDB Cluster。
  • 如果只是要主从高可用、允许秒级 RPO → 不必上同步集群,MHA/Orchestrator/半同步复制更轻。

八、参考链接

  1. Percona XtraDB Cluster 8.4 官方文档:https://docs.percona.com/percona-xtradb-cluster/8.4/ (2026-10-20 查询)
  2. 8.4.11-11 Release Notes:https://docs.percona.com/percona-xtradb-cluster/8.4/release-notes/8.4.11-11.html (2026-10-05 发布,2026-10-20 查询)
  3. PXC 官方限制清单:https://docs.percona.com/percona-xtradb-cluster/8.4/limitation.html (2026-10-20 查询)
  4. Clone SST 官方指南:https://docs.percona.com/percona-xtradb-cluster/8.4/clone-sst.html (2026-10-20 查询)
  5. Percona 生命周期政策:https://www.percona.com/release-lifecycle-overview/ (2026-10-20 查询)
  6. 8.0 系列 EOL 公告:https://docs.percona.com/new/2026/07/23/percona-distribution-for-mysql-8046-using-percona-xtradb-cluster-has-been-released/ (2026-10-20 查询)
  7. Galera 维护权变更分析(Percona 博客):https://www.percona.com/blog/your-galera-clusters-hardest-problem-was-never-the-replication-library/ (2026-10-20 查询)
  8. MySQL Group Replication 官方手册:https://dev.mysql.com/doc/refman/8.4/en/group-replication.html (2026-10-20 查询)
  9. MySQL InnoDB Cluster 官方手册:https://dev.mysql.com/doc/mysql-shell/8.4/en/ (2026-10-20 查询)
  10. MariaDB Galera Cluster 知识库:https://mariadb.com/kb/en/galera-cluster/ (2026-10-20 查询)
  11. GitHub 仓库与星数取证:https://github.com/percona/percona-xtradb-cluster ;星数徽章 https://img.shields.io/github/stars/percona/percona-xtradb-cluster.json (2026-10-20 取证,391)