首批通过分布式安全可靠测评,为关键业务系统打造
只读副本概述
更新时间:2026-06-30 14:57:43
应用场景
当出现如下场景时,用户可以考虑购买 OceanBase 只读副本以应对业务需要:
场景一:系统面临大规模的读请求,且当前 OceanBase 集群实例中的备副本已无法满足业务日益增长的读负载,导致响应时间延长、影响用户体验。此时,需要额外扩展只读副本资源来分摊读请求,减轻主集群的压力。
场景二:业务场景对于写请求的稳定性要求极高,希望实现彻底的读写分离,读请求的流量不会发送到原集群实例。
技术原理
OceanBase 数据库集群实例的只读副本功能通过 OceanBase 数据库内核的 只读型副本 来实现,它不作为 Paxos 成员参与日志的投票,而是作为一个观察者实时追赶 Paxos 成员的日志,并在本地回放,在业务对读取数据的一致性要求不高的时候可提供只读服务。关于 Paxos 的更多介绍,可以参考 Paxos 协议。
在代理层面,用户创建只读副本访问地址后,通过对代理服务的设置,业务流量将被发送到只读型副本所在机器读取数据。
前提条件
OceanBase 数据库版本:只读副本使用没有版本限制,只读列存副本需要数据库版本在 V4.3.3 及以上。
支持的实例类型:集群实例(事务型)
支持的云厂商渠道:阿里云、腾讯云、华为云、AWS
说明
部分实例暂不支持开通只读副本,如业务上有紧急的只读需求,请联系技术支持人员协助您评估可行的替代方案。
计费
支持按量付费和包年包月。详细说明,请参见 只读副本计费说明。
为按量付费的集群实例创建只读副本时,只读副本和集群实例的生命周期是一致的。
集群实例到期锁定期间,只读副本也会锁定。
集群实例被超期释放后,只读副本也会被直接释放。
功能特点
流量分摊:通过只读副本访问地址,引导应用程序将读流量分散到只读副本上,降低集群实例负载,尤其是在读取密集型应用场景下。
水平扩展:只读副本和集群实例一样具备规格扩缩容、节点扩缩容的能力,因此用户可以根据业务需求动态调整只读副本,以适应不同时间段内读取请求的变化。
数据一致性:只读副本、只读列存副本的数据一致性是最终一致性,通过 OceanBase 的内核 Paxos 的异步复制来实现的,在使用的时候,需要合理评估业务对数据的一致性要求。
功能限制
部署方案限制:对于双机房和多机房部署的集群实例,OceanBase 数据库支持创建只读副本,每增加一个只读副本可以多创建一个代理地址。
规格限制:
一个只读副本内的节点规格必须保持一致,不同只读副本的节点规格可以不一致。
对于只读副本节点规格的选择,若其所属集群实例为 V4.x 版本,则该节点最小规格支持配置为 4 核,若其所属集群实例为 V3.x 版本,则该节点最小规格支持配置为 8 核。
只读副本数量限制
数据库版本 V4.3.5 之前的版本最大支持创建 3 个只读副本、只读列存副本,或者两个副本的任意组合。V4.3.5 及之后的版本,最大支持创建 10 个只读副本。
若后续选择购买额外的只读副本,那么每当该集群下新增购买一个只读副本实例时,可创建的访问地址数量相应增加一个。
使用流程
使用 OceanBase 数据库的只读副本功能,您需要先为集群实例创建只读副本,然后为该集群实例下的租户开启只读副本,最后为对应租户添加只读副本访问地址。具体操作步骤可以参考 添加集群只读副本、添加租户只读副本 和 添加访问地址。