介绍
Alauda Database for MySQL-MGR 是基于 MySQL Group Replication 技术并运行于 Kubernetes 上的高可用数据库解决方案。它提供了 MySQL Group Replication 集群的自动化部署和管理能力。
目录
主要特性
- 高可用性:基于 MySQL Group Replication 的集群架构,实现多节点数据自动同步和故障自愈,主节点故障时自动切换,降低服务中断风险。
- 数据一致性:基于组复制技术的分布式认证,确保数据一致性。
- 自动化管理:通过 Operator 实现集群部署、配置更新、备份恢复等全生命周期管理,系统性降低运维成本。
- 弹性扩缩容:支持在线添加或移除节点,自动全局事务状态同步,适应动态业务负载变化。
- 读写分离:通过 MySQL Router 支持读写分离。
应用场景
- 需要高可用性的关键业务数据库
- 需要强数据一致性的分布式数据库场景
- 需要弹性扩缩容的云原生数据库
使用限制
- 组成员数量:MySQL 复制组成员最大数量为 9,建议至少 3 个成员以保证高可用性。
- InnoDB 引擎:依赖 InnoDB 存储引擎,建议配置
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
禁用不支持的存储引擎。
- 显式主键:每个被复制的表必须定义主键或等效主键,等效主键为非空唯一键。配置
sql_generate_invisible_primary_key: ON
支持无显式主键的表。
- 网络质量:设计部署于服务器实例彼此非常接近的集群环境,网络延迟低。高网络延迟可能导致复制延迟甚至复制失败。
- 隔离级别限制:建议使用 READ COMMITTED 隔离级别,不支持 SERIALIZABLE 隔离级别。
- 外键限制:多主模式下不建议使用级联外键。
- 多主死锁:多主模式下使用
SELECT .. FOR UPDATE
语句可能发生死锁,因为锁不在成员间共享。
- 并发 DDL 和 DML 冲突:多主模式下 DDL 和 DML 操作可能冲突,建议避免并发执行。
- 事务大小限制:确保事务大小在 group_replication_transaction_size_limit 范围内(默认约 143 MB),且能在 group_replication_member_expel_timeout 时间内完成(默认 5 秒)。
- 异构架构限制:由于 MySQL Clone 插件限制,当前不支持异构场景。
- 滚动更新限制:MySQL Pod 会优先重启从成员,主成员最后重启。此过程可能导致短暂连接中断,需应用层重试机制。