如何使用galera cluster_mysql多节点同步方案

9次阅读

Galera Cluster for MySQL 是基于同步复制的多主集群方案,需通过 Percona XtraDB Cluster 或 MariaDB Galera Cluster 部署,不支持原生 Oracle MySQL;仅兼容 InnoDB,依赖 write-set 认证复制,要求小事务、显式提交、避免非确定性函数。

如何使用 galera cluster_mysql 多节点同步方案

Galera Cluster for MySQL 是一种基于同步复制的多主集群方案,适用于需要高可用、强一致性、读写扩展能力的 MySQL 场景。它不是 MySQL 官方原生功能,而是由 Codership 开发的 wsrep(Write Set Replication)插件实现,常与 MariaDB 或 Percona XtraDB Cluster(PXC)配合使用。MySQL 官方版本(如 Oracle MySQL)本身不直接支持 Galera,需通过 Percona XtraDB Cluster 或 MariaDB Galera Cluster 来部署。

确认 MySQL 兼容性与选型

原生 MySQL 社区版或企业版不支持 Galera 协议。若想用 Galera 方案,必须选择以下之一:

  • Percona XtraDB Cluster(PXC):基于 MySQL 源码 + XtraDB(增强版 InnoDB)+ wsrep 插件,兼容 MySQL 协议和语法,推荐用于生产环境;
  • MariaDB Galera Cluster:MariaDB 官方集成 Galera,配置更轻量,适合中小规模或快速验证场景;
  • 不建议尝试给 Oracle MySQL 手动编译 wsrep 插件——无官方支持、版本难对齐、稳定性风险高。

基础部署三节点集群(以 PXC 为例)

以 Ubuntu/Debian 系统为例,三节点(node1/node2/node3)部署要点如下:

  • 所有节点安装相同版本的 percona-xtradb-cluster(如 8.0.32-24),确保内核、glibc、openssl 版本一致;
  • 配置 /etc/mysql/my.cnf,每个节点需设置唯一 wsrep_node_namewsrep_node_address
  • 首个节点启动时加 –wsrep-new-cluster 参数引导集群;其余节点直接启动服务,自动加入已存在的集群;
  • 检查状态:登录 MySQL 执行 SHOW STATUS LIKE ‘wsrep%’;,重点关注 wsrep_cluster_size(应为 3)、wsrep_ready(ON)、wsrep_local_state_comment(Synced)。

关键配置与同步行为说明

Galera 的同步不是传统主从式,而是全节点实时认证复制,需注意:

  • 仅支持 InnoDB 引擎 ,MyISAM 表无法同步且会导致集群异常;
  • 所有写操作在本地预执行 → 生成 write-set → 广播至集群 → 全体认证通过后才提交(冲突则回滚);
  • 事务必须小而快 :大事务会阻塞认证队列,引发 flow control(可通过 wsrep_flow_control_paused 监控);
  • 推荐关闭 autocommit=1,显式使用 BEGIN/COMMIT 控制事务边界;
  • 避免跨节点的非确定性函数(如 NOW()RAND()),可能导致认证失败。

日常运维与故障恢复要点

集群稳定运行依赖规范操作:

  • 单节点宕机后自动剔除,重启并启动 mysqld 即可自动同步追平(需磁盘日志完整,gcache.size 足够);
  • 若整个集群意外崩溃,需人工指定最后一个安全关机的节点执行 –wsrep-recover 获取 safe_to_bootstrap 值,再用 –wsrep-new-cluster 重建;
  • 禁止直接修改 grastate.dat 或强制清空 gcache,易导致数据不一致;
  • 监控建议接入 wsrep_cluster_statuswsrep_local_recv_queue_avgwsrep_cert_deps_distance 等指标,预警延迟或瓶颈。
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-25发表,共计1582字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources