OceanBase 数据库提供多种部署模式,可根据对机房配置以及性能和可用性的需求进行灵活选择。
| 部署方案 | 容灾能力 | RTO | RPO |
|---|---|---|---|
| 同机房三副本 | 机器级无损容灾 / 机架级无损容灾 | 30s 内 | 0 |
| 同城双机房主备库 | 机房级容灾 | 分钟级 | 大于 0 |
| 同城三机房 | 机房级无损容灾 | 30s 内 | 0 |
| 两地两中心主备库 | 地域级容灾 | 分钟级 | 大于 0 |
| 三地三中心五副本 | 地域级无损容灾 | 30s内 | 0 |
为了达到不同级别的容灾能力,OceanBase 数据库提供了两种高可用解决方案:多副本高可用解决方案和主备库高可用解决方案。多副本高可用解决方案基于 Paxos 协议实现,在少数派副本不可用情况下,能够自动恢复服务,并且不丢数据,始终保证 RTO 在 30 秒内,RPO 为 0。主备库高可用解决方案是基于传统的主-备架构来实现的高可用方案,是多副本高可用方案的重要补充,可以满足双机房和双地域场景下的容灾需求;它不能保证数据不丢,RPO 大于 0,RTO 为分钟级别。
同机房三副本
如果只有一个机房,可以部署三副本或更多副本,来达到机器级无损容灾。当单台 server 或少数派 server 宕机情况下,不影响业务服务,不丢数据。如果一个机房内有多个机架,可以为每个机架部署一个 Zone,从而达到机架级无损容灾。
同城双机房主备库
如果同城只有双机房,又想达到机房级容灾能力,可以采用主备库,每个机房部署一个集群。当任何一个机房不可用时,另一个机房可以接管业务服务。如果备机房不可用,此时业务数据不受影响,可以持续提供服务;如果主机房不可用,备机房集群需要激活成新主集群,接管业务服务,由于备集群不能保证同步所有数据,因此可能会丢失数据。
同城三机房
如果同城具备三机房条件,可以为每个机房部署一个 Zone,从而达到机房级无损容灾能力。任何一个机房不可用时,可以利用剩下的两个机房继续提供服务,不丢失数据。这种部署架构不依赖主备库,不过不具备地域级容灾能力。
两地两中心主备库
用户希望达到地域级容灾,但是每个地域只有一个机房时,可以采用主备库架构,选择一个地域作为主地域,部署主集群,另一个地域部署备集群。当备地域不可用时,不影响主地域的业务服务;当主地域不可用时,备集群可以激活为新主集群继续提供服务,这种情况下可能会丢失业务数据。
更进一步,用户可以利用两地两中心实现双活,部署两套主备库,两个地域互为主备。这样可以更加高效利用资源,并且达到更高的容灾能力。
三地三中心五副本
为了支持地区级无损容灾,通过 Paxos 协议的原理可以证明,至少需要 3 个地区。OceanBase 数据库采用的是两地三中心的变种方案:三地三中心五副本。该方案包含三个城市,每个城市一个机房,前两个城市的机房各有两个副本,第三个城市的机房只有一个副本。和两地三中心的不同点在于,每次执行事务至少需要同步到两个城市,需要业务容忍异地复制的延时。
三地五中心五副本
和三地三中心五副本类似,不同点在于,三地五中心会把每个副本部署到不同的机房,进一步强化机房容灾能力。




