数据库容灾是一种战略性计划,旨在确保数据库系统在遇到灾难性事件时能够持续运行和恢复正常操作。这包括备份数据、创建冗余系统、实施灾难恢复计划、定期演练等策略。数据库容灾旨在最小化数据丢失、减少停机时间,以保护关键业务数据的完整性和可用性。
数据库容灾的意义
众所周知,作为生产系统中极为关键的核心软件,数据库产品的高可用性一直是使用者极为关注的功能点。尤其是在金融这样一个特殊的领域里,无论是从监管的要求来看,还是从业务需求本身来看,都需要提供24*7持续不间断的服务,这就对金融行业中数据库产品的高可用性提出了很高的要求。不但需要应对个别硬件故障的情况,还必须能够应对机房整体故障和城市灾难等极端情况,保证数据库在各种意外情况下都能持续提供服务,即具备机房级容灾能力和城市级容灾能力。详情参考数据库容灾的意义。
OceanBase数据库容灾
1.同机房三副本
如果只有一个机房,可以部署三副本或更多副本,来达到机器级无损容灾。当单台 Server 或少数派 Server 宕机情况下,不影响业务服务,不丢数据。如果一个机房内有多个机架,可以为每个机架部署一个 Zone,从而达到机架级无损容灾。
2.同城双机房物理备库
如果同城只有双机房,又想达到机房级容灾能力,可以采用物理备库,每个机房部署一个集群。当任何一个机房不可用时,另一个机房可以接管业务服务。如果备机房不可用,此时业务数据不受影响,可以持续提供服务;如果主机房不可用,备库需要激活成新主库,接管业务服务,由于备库不能保证同步所有数据,因此可能会丢失数据。
3.同城三机房三副本
如果同城具备三机房条件,还可以为每个机房部署一个 Zone,从而达到机房级无损容灾能力。任何一个机房不可用时,可以利用剩下的两个机房继续提供服务,不丢失数据。这种部署架构不依赖物理备库,不过不具备地域级容灾能力。
4.两地两中心物理备库
用户希望达到地域级容灾,但是每个地域只有一个机房时,可以采用物理备库架构,选择一个地域作为主地域,部署主库,另一个地域部署备库。当备地域不可用时,不影响主地域的业务服务;当主地域不可用时,备库可以激活为新主库继续提供服务,这种情况下可能会丢失业务数据。更进一步,用户可以利用两地两中心实现双活,部署两套物理备库,两个地域互为主备。这样可以更加高效利用资源,并且达到更高的容灾能力。
5.两地三中心加物理备库
如果用户在两个不同的地域共有三个机房,可以使用 “两地三中心加物理备库” 的方案提供地域级容灾能力。我们将有两个机房的地域称为主地域,业务在主地域两个机房里各部署一个或两个全功能副本,数据库的读写服务在主地域提供。另外一个地域机房中部署仲裁服务和物理备库,提供容灾服务。在主地域一个机房出现故障时,仲裁方案会自动执行降级,确保业务在秒级恢复,同时不丢失数据。在主地域两个机房同时出现故障时,需要将物理备库激活成主库提供服务,此时业务有损,RPO > 0。
6.三地三中心五副本
为了支持地域级无损容灾,通过 Paxos 协议的原理可以证明,至少需要 3 个地域。该方案包含三个城市,每个城市一个机房,前两个城市的机房各有两个副本,第三个城市的机房只有一个副本。和两地三中心的不同点在于,每次执行事务至少需要同步到两个城市,需要业务容忍异地复制的延时。
7.三地五中心五副本
与三地三中心五副本类似,不同点在于,三地五中心会把每个副本部署到不同的机房,进一步强化机房容灾能力。
详情参考OceanBase数据库容灾部署方案。
数据库容灾与高可用
OceanBase 数据库从诞生之初,就利用Paxos协议在底层实现了多副本数据一致性,具有上述“RPO=0、低RTO(通常在30s以下)、故障时自动切换”的优势。而经过多年实际应用场景的历练后,尤其是像支付宝、淘宝、网商银行这种高并发、高访问量、24*7持续交易场景的磨练,OceanBase数据库已经摸索出一套完整的、经过实践检验的高可用及容灾方案。OceanBase数据库的实践经验即分布式数据常用的一些高可用及容灾方案,详情参考数据库容灾与高可用。
数据库容灾相关文章
OMS搭建OceanBase容灾双活架构测试
在我们实际生产环境中,因为业务的重要性,经常会有容灾双活需求,除了OceanBase提供的主备库功能外,OMS官方也提供了容灾双活的能力,双活架构目前只支持OceanBase与OceanBase数据库互相同步。
使用OMS双活架构前提,需要用户多地域部署OMS,如果单地域部署,是没办法做OMS双活架构,这里在创建数据源的时候,需要两端的OceanBase集群属于不同的地域,才可以配置双活。
OCP 多集群模式如何实现跨城双机房容灾呢?
当需要在两个城市分别部署 OceanBase 主备集群时,可采用 OCP 集群跨城双机房部署方式,当其中的一个城市的 OCP 集群发生故障时,另一个 OCP 集群将会承担起对 OceanBase 集群的运维、监控和告警的能力。
以跨城双机房场景为例:将 OCP 的主备集群分别部署在城市 A 和城市 B 中,其中城市 A 中的 OCP 集群为主集群,城市 B 中的OCP 集群为备集群。OCP 主备集群中分别管理着多个OceanBase 集群。当A地网络故障导致 OCP 集群和 OceanBase 集群均不可用时,可通过 OCP 集群主备切换,将 B 地的 OCP 备集群切换为主集群。该主集群可继续对 OceanBase 集群进行运维。将其管理的OceanBase 01 备集群切换为主集群,此时客户 A 业务和 B 业务的主集群都可正常运行。从而实现了业务的跨城高可用。业务通过关联 OBProxy 访问 OceanBase 集群,对于跨 OCP 集群的 OceanBase 主备集群,每个 OceanBase 集群绑定一个 OBProxy,当 OBProxy 绑定在业务集群备库时,可访问业务集群备库。当 OCP 主备集群出现网络故障时,业务可通过 OceanBase 备集群绑定的 OBProxy 继续访问 OceanBase 集群。
跨城三机房场景,与上述场景类似,在两个城市中部署三个 OCP 集群,当两地网络故障时,可将一个 OCP 备集群切换为主集群,继续保证 OceanBase 集群的正常运行。
数据库容灾相关解决方案
异地多活解决方案
ceanBase 基于 Multi-Paxos 的全新事务日志架构,能够在最短 8s 内完成故障切换,同时保证零数据丢失。通过强大的异地部署能力和多种灵活的容灾架构方案(多副本、仲裁、主备集群、逻辑复制等),帮助企业在各种关键核心场景中构建金融级多地多活数据库架构。
https://www.oceanbase.com/solution/disaster-recovery