oceanbase的主备库架构为什么能降低服务的停机时间?

下面是oceanbase主备库概述一节的原文:

OceanBase 数据库的主备库高可用架构是 OceanBase 数据库高可用能力的重要补充。当主集群出现计划内或计划外(多数派副本故障)的不可用情况时,备集群可以接管服务,并且提供无损切换(RPO = 0)和有损切换(RPO > 0)两种容灾能力,最大限度降低服务的停机时间。

我的疑问是既然oceanbase主备库不支持自动切换,那服务的停机时间不应该大于可以自动切换的方案吗,比如如下这种三地五中心五副本部署的方案:


这种方案在某个集群多数派副本宕机时,可以通过一致性协议进行选主,等选主完成后就能完成自动的服务接管,这样不会相比主备库这种需要人工执行命令的方案,服务的停机时间更短吗?所以为什么说oceanbase的主备库架构能降低服务的停机时间呢?oceanbase的主备库相比之下的适用场景或者说优势具体是什么呢?

2 个赞

其实这段描述里面已经说明了原因:当主集群出现计划内或计划外(多数派副本故障)的不可用情况时,备集群可以接管服务

这里主要就是做集群级别的容灾,OB集群出现故障或者计划内停机,出现故障也就是集群内多数派副本故障,这时就需要备库顶上了。虽然集群可以做两地三中心,三地五中心等3副本或者5副本部署,尽管OB的分布式多副本高可用及容灾能力已经非常强大,但是还是会有多种因素导致多数派不可用的。

而且需要考虑到业务诉求及成本等因素。

高可用 FAQ

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573568

2 个赞

文档并没有说“主备库的切换方案”的停机时间比集群内多副本自动切换方案的时间更短。
所以你的疑问如何得来?

在高可用架构家族 主备方案可以理解为多副本的一种补充方案或者备选方案,无论是无损切换还是有损切换正常情况下其RTO不会高于多副本。

不明觉厉!支持!

感谢您的回复,您说的第一点我已经完全明白了,总的来说主备库的方案能保证更高的级别的容灾(集群的级别)。请问关于您最后说的业务诉求和成本方面可以举个更详细一些的例子吗?

关于这个结论的有可解释的原因吗?我个人理解是多副本的RTO很大程度上取决于选主的耗时,主备库的RTO不管是无损切换还是有损切换都避免了选主的耗时。这个理解是否正确呢?

你前半句理解是正确的,主备库的切换过程是角色的切换,有switchover和failover方式,都和分布式的选主方式不一样

也不是说更高级别的容灾,原来的分布式集群加上备库会使容灾体系更加完善,当然这样成本更高些,
如果业务要求很低,单节点+备单节点也是可行的,如果单纯使用分布式集群做高可用,像两地三中心,三地五中心 也要做好业务设计和应急预案,可以看看相关的文章
https://open.oceanbase.com/blog/10900385
https://open.oceanbase.com/blog/9117055248
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001573482
https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000079?back=kb
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207764?back=kb

业务诉求和成本综合考虑主要是说在业务上的高可用指标和一些其它需求的同时尽量省钱,像RTO,RPO要求,是否会用到备库只读,像做分析库,是否会用到从副本的非一致性读等

主备租户和主备副本是两种概念。不能混淆,备租户中也有Leader副本。根据下面文档描述的,副本切主耗时是毫秒级的
https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000362841

请问后半句”主备库的RTO不管是无损切换还是有损切换都避免了选主的耗时“有什么问题吗?而且楼下也有人指出根据文档描述,副本切主耗时是毫秒级,看起来主备库和多副本的RTO区别的原因并不在选主耗时,而且在您给出的“深圳农商银行基于OceanBase的两地三中心落地及生产容灾切换实践”这篇文章中也指出主备库的异地RTO是分钟级的,看起来比多副本大很大多。

根据这两个文档看起来好像多副本的RTO反而会更小一些?您说的无论是无损切换还是有损切换正常情况下主备库RTO不会高于多副本的根本原因到底是什么呢?还是说目前只是实验得出的数据

主备集群凸显的是容灾功能。
多副本模式其中有个有优点是集群发生部分节点宕机,完整的副本集处于多数派情况下集群仍能正常提供服务

1 个赞