数据高可用服务
HHDB Server在计算节点、数据节点、配置库等层次提供全面的高可用保障。提供完善的心跳检测、故障切换对存储节点同步追平判断、全局自增序列在故障时自动跳号、客户端连接Hold等机制,保障数据服务的可用性与数据的一致性。
计算节点服务高可用
HHDB Server采用keepalived技术实现计算节点服务的高可用。由keepalived实时检测计算节点的健康状态并在计算节点发生故障时进行高可用切换。目前支持通过管理平台对主备模式的计算节点集群进行手动高可用切换。也可以在计算节点集群发生高可用切换之后,重建高可用环境,保证下次故障发生时可正常切换。
数据节点服务高可用
HHDB Server提供数据节点内的存储节点高可用。在正确部署且已配置故障切换规则的一组存储节点中,当主存储节点不可用时,程序将自动切换到优先级最高的备存储节点上,且保证主从数据同步追平。使用数据节点高可用要求:必须配置主从存储节点的故障切换规则,并在计算节点中开启心跳功能。
配置库服务高可用
HHDB Server支持配置库服务高可用,防止配置库实例出现故障时,计算节点无法正常提供服务。配置库目前支持主从、双主、MGR(MySQL Group Replication)三种复制模式。
数据同步
普通Replication模式
HHDB Server支持配置库与存储节点使用MySQL Replication。支持BINLOG格式为MIXED和ROW,同时支持使用半同步复制、GTID、多线程复制。
MGR实时同步
HHDB Server支持配置库与存储节点使用MGR(MySQL Group Replication)复制模式。目前只支持single primary模式。相比半同步复制可略微提升故障场景下主从数据一致性(半同步复制可保证收到commit ok的事务不丢失,但不保证主机执行崩溃恢复流程后数据和从机一致)。
多源复制
HHDB Server兼容但不支持存储节点的多源复制功能。
数据追平策略
在关系集群数据库存储节点高可用机制中,当主库宕机时计算节点的切换策略会根据备库设置的优先级进行切换并且计算节点会保证可用的备库追完所有可应用的relaylog后才将服务切换到备库上。结合使用半同步复制,可保证"已收到commit ok的事务不丢失,未发出commit的事务回滚";在此基础上再启用HHDB Server的强一致模式,则可额外保证"已发出commit但未收到commit ok的事务,全提交或者全回滚"。