暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 050:OceanBase 数据库中,有哪些产品能力保证了数据服务的高可用?

产品能力及解决方案故障场景工作原理
OceanBase 分布式选举OceanBase 集群少数派因为各种原因造成不可用的故障恢复:
  • 比如3副本3台 OBServer 节点组成的 OceanBase 集群中1台 OBServer 节点宕机、退出。
  • 部署在不同机房的少数派副本机房故障;
  • 部署在不同城市的少数派副本城市发生灾难。
OceanBase 集群的选举模块保证选举出唯一的主副本对外提供数据服务。同时,通过 Paxos 协议实现了多数派 Clog 强一致同步持久化,在Paxos 组中任意少数派副本发生故障的情况下,剩下的所有多数派 Clog 合在一起后,保证有完整的 Clog,因此就能避免个别硬件故障带来的数据损失,保证了数据可靠性。
当整个 OceanBase 集群中的少数派出现故障时,如果是非 Leader 副本的少数派不可用,不会影响系统的可用性和数据库的性能。如果少数派故障中有 Leader 副本,OceanBase 集群能够保证从剩余副本选出唯一新主提供数据服务,主要基于 OceanBase 集群的搭建部署模式,如果 OBServer 节点的多个 Zone 分布在不同机房、不同城市时,通过 OceanBase 集群的分布式选举加上 OceanBase Paxos Clog 同步就可以达到跨机房高可用或者是跨城市的高可用方案。
OceanBase Clog 及存储引擎
  • OBServer 节点多数派故障需要重启;
  • 维护计划内的 OBServer 节点重启。
OceanBase 集群的存储引擎将基线数据保存在 SSTable,增量数据保存在 MemTable 中。 OceanBase Clog 是数据的 redo log。当有数据修改发生时,请求会到达 Leader 副本所在节点,将数据更改请求更新到 MemTable中,事务进行提交, Leader 更新本地 Clog 并通过 Paxos 协议将日志同步写到其他 Follower 的副本节点上。当有多数派节点的日志写盘成功后,数据修改成功,返回客户端。
Follower 副本会将 Clog 回放到本地 MemTable 上提供弱一致读服务。当 MemTable 到达阈值后,会触发冻结和转储,持久到 SSTable 层。而此时的 Clog 回放位点会推进,类似于做了 Checkpoint。在 OBServer 节点重启时,能够做到从 SSTable 中源数据还原、更新到最新信息。然后,从分区的元信息中获取 Clog 的回放位点,开始回放 Clog 日志生成 MemTable 中。至此,OceanBase 集群可以将磁盘中的持久化信息恢复到宕机前的状态,保证了数据的完整性。
当 OceanBase 集群由于故障(软件退出、异常重启、断电、机器故障等)重启或者计划内停机维护重启时,OBServer 节点能够在启动中恢复,将OBServer 节点store 目录下的日志和数据还原到内存中,将进程的状态恢复到宕机前的状态。如果多数派副本故障并需要重启,数据服务会发生中断,OceanBase 集群保证在多数派宕机重启后数据可以完全恢复到宕机之前。
OBServer 节点对于多数派宕机重启也进行了进一步的优化处理,加速数据副本恢复加载到 MemTable 的速度,尽快对外提供数据服务。在整个集群重启的情景下,需要将磁盘上最新的 Clog 重新回放到 MemTable 里后对外提供数据服务,在 OceanBase 集群能够重新恢复数据服务时,数据恢复到集群重启前。
OceanBase 备份恢复OceanBase 集群出现数据损坏、节点 Crash 或者集群故障,OceanBase 集群可以从备份的基线数据和 Clog 备份中恢复。当 OceanBase 集群出现数据损坏、节点 crash 或者集群故障时,OceanBase 集群可以从备份的基线数据和 Clog 备份中恢复。
OceanBase 主备库解决方案机房级的故障或城市级的灾难恢复:
  • 故障恢复是指当系统出现短时可恢复故障时,系统恢复可用性、恢复数据服务的一系列过程;
  • 灾难恢复是指当机房甚至城市出现灾难或故障事件导致机房或者该城市内机房长时间的故障,不能立即恢复可用时,整个系统恢复可用的一系列过程。
OceanBase 集群也支持传统的主备库架构。 OceanBase 集群的多副本机制可以提供丰富的容灾能力,在机器级、机房级、城市级故障情况下,可以实现自动切换,并且不丢数据,RPO = 0。当主集群出现计划内或计划外(多数派副本故障)的不可用情况时,备集群可以接管服务,并且提供无损切换(RPO = 0)和有损切换(RPO > 0)两种容灾能力,最大限度降低服务停机时间。
OceanBase 集群支持创建、维护、管理和监控一个或多个备集群。备集群是生产库数据的热备份。管理员可以选择将密集型只读业务操作分配到备集群,以便提高系统的性能和资源利用率。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论