介绍
Alauda Data Services Relational Database E1 是一种基于 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 操作可能导致冲突;建议避免并发执行 DDL 和 DML 操作。
- 事务大小限制:确保事务大小处于 group_replication_transaction_size_limit 范围内(默认约为 143 MB),并且能够在 group_replication_member_expel_timeout 时间段内完成(默认 5s)。
- 异构架构限制:由于 MySQL Clone 插件的限制,目前不支持异构场景。
- 滚动更新限制:MySQL Pod 将优先重启辅助成员,最后重启主成员。此过程可能导致短暂的连接中断,因此需要应用层重试机制。