OceanBase 集群的多副本机制提供了丰富的容灾能力,在机器级、机房级、城市级故障情况下,可以实现自动切换,并且不丢失数据,即 RPO = 0。
OceanBase 数据库的主备库高可用架构是 OceanBase 数据库高可用能力的重要补充。当主集群出现计划内或计划外(多数派副本故障)的不可用情况时,备集群可以接管服务,并且提供无损切换(RPO = 0)和有损切换(RPO > 0)两种容灾能力,最大限度降低服务的停机时间。
OceanBase 数据库支持创建、维护、管理及监控一个或多个备集群。备集群是生产库数据的热备份。管理员可以选择将资源密集型的报表操作分配到备集群,以便提高系统的性能和资源利用率。
主备库配置
OceanBase 主备库配置支持 1 个主集群和最多 31 个备集群。您可以采用 SQL 命令或 OCP 来管理主集群和备集群。
主集群即生产集群,是唯一接受业务写入和强一致性读的集群,它的角色是 PRIMARY。
备集群是主集群的一个数据备份,用于保证事务的一致性,它的角色是 PHYSICAL STANDBY。主集群会自动向备集群传输 REDO 日志,备集群收到 REDO 日志后会进行持久化,然后执行 REDO 回放操作,恢复用户数据和 Schema,保证与主集群物理一致。
OceanBase 数据库还提供了多种数据校验机制,通过多种途径保证备集群恢复的数据与主集群数据的一致性,包括:
数据恢复校验机制
日志项 Checksum 校验:保证每一条日志都准确
日志累积 Checksum 校验:保证不漏掉一条日志
事务级别 Checksum 校验:保证事务修改的完整性
行级别 Checksum 校验:保证每一行修改的完整性
多副本数据校验机制
列 Checksum 校验:保证副本间每一列值的一致性
分区数据 Checksum 和行数校验:保证副本间分区数据的一致性
索引表和主表数据校验机制
列 Checksum 校验:保证索引表和主表的列数据一致
行数校验:保证索引表和主表的数据量一致
跨集群数据校验机制
- 分区数据 Checksum 和行数校验:保证主备集群间分区数据的一致性