Galera Cluster是由Codership公司开发的免费开源高可用数据库集群解决方案 🗄️。它为MySQL、MariaDB和Percona提供同步多主复制功能,实现真正的多点写入和数据一致性保证。
🏗️ 架构特点
核心特性:
- 🔄 多主架构:所有节点对等,均可读写
- 🔒 数据一致性:集群内部保证数据完整性
- ⚡ 同步复制:实时数据同步
- 🛡️ 高可用性:自动故障转移
支持的数据库:
- MySQL
- MariaDB
- Percona Server
重要限制:
- 仅支持InnoDB存储引擎
- 不支持Lock Table操作
📚 官方资源
- 官方网站:https://galeracluster.com/
- MariaDB文档:https://mariadb.com/kb/en/galera-cluster/
- 已知限制:https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/
- 迁移指南:https://galeracluster.com/library/training/tutorials/migration.html
🚀 主要功能
核心能力
- 🔄 同步复制:确保数据实时一致性
- 🌐 真正的多主模式:所有节点可同时读写
- 🔧 自动节点管理:失效节点自动清除
- 📥 自动数据复制:新节点加入时自动同步数据
- ⚡ 并行复制:行级并行处理
- 🔌 透明连接:用户体验与单机MySQL一致
✨ 技术优势
性能优势
- ⚡ 无延迟问题:多主架构消除了Slave延迟
- 🔒 零事务丢失:同步复制确保数据安全
- 📈 读写扩展:同时具备读写扩展能力
- 🚀 低延迟:客户端响应时间更短
- 🔄 数据同步:节点间数据实时同步(vs 传统异步复制)
🔧 实现架构
Galera集群的复制功能基于Galera library实现,为了让MySQL与Galera library通信,特别针对MySQL开发了wsrep API。
🔄 同步原理
节点角色
在Galera Cluster中:
- Joiner:新接入的节点
- Donor:为Joiner提供数据复制的节点
参考节点架构
对于生产环境,建议设立专用的”参考节点”,该节点不执行任何客户端SQL请求。
上图中红色的NODE A即为”参考节点”,具有以下优势:
🔒 数据一致性
- 不执行客户端SQL,事务冲突可能性最小
- 集群数据不一致时,参考节点数据最准确
🛡️ 数据安全性
- 不执行客户端SQL,灾难事件可能性最小
- 集群宕机时,是恢复集群的最佳节点
⚡ 高可用性
- 可作为专门的state snapshot donor
- SST过程不影响用户体验
- 负载均衡设备无需重新配置
💡 最佳实践:在生产环境中强烈建议使用参考节点架构,以提高集群的稳定性和可维护性。