首批通过分布式安全可靠测评,为关键业务系统打造
租户级扩容与缩容
更新时间:2026-07-10 11:28:39
租户的扩容和缩容本质上是提高和降低租户的服务能力,包括计算能力和存储容量。下面主要从水平扩缩容和垂直扩缩容等方面来介绍 OceanBase 数据库提供的租户扩缩容功能。
水平扩缩容
在 OceanBase 数据库中,租户的存储容量和读写服务能力受到 Unit Number 个数、Primary Zone 第一优先级个数以及 Locality 等的影响。
调整 Unit Number 个数
Unit Number 即资源池的 UNIT_NUM,表示各 Zone 上为租户提供服务的 Unit 个数。通过调整租户资源池的 UNIT_NUM 数量,增加或减少 Zone 上为该租户提供服务的节点的数量,从而改变租户整体的服务能力,实现租户的扩容或缩容。
调整资源池的 UNIT_NUM 包括调大 UNIT_NUM 和调小 UNIT_NUM。调整 UNIT_NUM 时:
对于同构 Zone 模式的租户:
如果有多个 Resource Pool,且这些 Resource Pool 未分配给租户,则可以单独调大或调小某个 Resource Pool 的
UNIT_NUM。如果有多个 Resource Pool,且这些 Resource Pool 均已分配给租户,则只能同时调整所有 Resource Pool 的
UNIT_NUM,无法单独调整。
对于异构 Zone 模式的租户,如果有多个 Resource Pool,无论这些 Resource Pool 是否已分配给租户,均可以调整。即,既支持同时调整所有 Resource Pool 的
UNIT_NUM,也支持单独调大或调小某个 Resource Pool 的UNIT_NUM。
调大或调小 UNIT_NUM 本质上是增加和删除 Unit。有关调大或调小 UNIT_NUM 的详细操作,参见 通过调整 Unit Number 实现租户扩缩容。
调整 Primary Zone 第一优先级的个数
Primary Zone,即提供读写服务的 Zone 列表。通过增加或减少 Primary Zone 第一优先级的个数,从而增加或减少提供读写服务的 Zone,实现读写服务在 Zone 间的水平扩缩容。
调整 Primary Zone 第一优先级的个数包括增加 Primary Zone 第一优先级的个数和减少 Primary Zone 第一优先级的个数两种场景。
有关调整 Primary Zone 第一优先级个数的详细操作,参见 通过调整 Primary Zone 实现租户扩缩容。
修改 Locality
Locality,即数据副本在 Zone 间的分布策略。通过修改 Locality,从而增加或减少租户每一份数据的副本数,进而改变租户数据在 Zone 间的服务范围。
修改 Locality 包括增加副本数和减少副本两种方式。
增加副本数
增加副本数主要用于以下场景:
场景 1 :租户副本数升级,以提高租户的可用性。
例如,将某个租户从 3 副本(
F@z1,F@z2,F@z3)升级为 5 副本(F@z1,F@z2,F@z3,F@z4,F@z5),数据范围从'z1', 'z2', 'z3'扩大到'z1','z2','z3','z4','z5',以便提高租户的可用性。场景 2:数据从一个机房(Zone)搬迁到另一个机房(Zone)时,在新机房中进行数据补全。
新机房内的数据补全是数据在机房内搬迁的一个子操作,假设租户期望将机房
z1的数据搬迁到z4,则需要先通过修改 Locality 在z4内添加数据,完成数据副本在机房间搬迁过程中,在新机房补全数据的操作。
减少副本数
减少副本数主要用于以下场景:
场景 1:租户副本数降级,以减少租户的存储资源使用量。
例如,将某个租户从 5 副本(
F@z1,F@z2,F@z3,F@z4,F@z5)降级为 3 副本(F@z1,F@z2,F@z3),数据范围从'z1','z2','z3','z4','z5'缩小到'z1','z2','z3',减少租户存储资源使用量。场景 2:数据从一个机房(Zone)搬迁到另一个机房(Zone)时,在旧机房中删除数据。
旧机房内的数据删除是数据在机房内搬迁的另一个子操作,假设租户期望将机房
z1的数据搬迁到z4,在z4内添加数据后,需要再次通过修改 Locality 在z1机房内删除数据,最终实现租户数据从z1搬迁到z4。
有关修改 Locality 的详细操作,参见 修改 Locality。
垂直扩缩容
垂直扩缩容主要是指,通过调整租户资源池的资源规格,改变租户在各节点上的服务能力,进而改变租户整体的服务能力,实现租户的扩容或缩容。
调整租户资源池的资源规格主要有以下两种方式:
切换新的资源规格(unit_config)
切换新的资源规格,即是通过调整资源池下每个资源单元的资源规格,进而调整租户在该资源池上的资源规格和服务能力。
修改当前资源规格(unit_config)
修改当前资源规格,即是通过直接调整当前资源规格的 CPU 或 Memory 等值,进而直接影响租户在该资源池上的资源规格和服务能力。
通常情况下,通过切换新的资源规格和修改当前资源规格的方式都能对租户的服务能力进行调整。对应到租户层面,实际上都是调整了租户资源池的资源规格,而对于资源规格的修改,主要包含调大资源规格和调小资源规格两种场景。
调大资源规格
在调大资源规格时,无论是通过切换新的资源规格还是修改当前资源规格,调整后的资源总量都需要满足以下要求:
Sum(min_cpu) <= CPU_CAPACITY Sum(memory_size) <= MEM_CAPACITY Sum(max_cpu) <= CPU_CAPACITY * resource_hard_limit其中:
CPU_CAPACITY:表示单个节点上 CPU 的总容量。MEM_CAPACITY:表示单个节点上内存的总容量。resource_hard_limit:用于定义 CPU 资源的超卖百分比,大于 100 表示允许超卖。
调小资源规格
在调小资源规格时,需要注意,资源规格中的
MEMORY_SIZE不能低于租户在当前节点上实际已使用的内存大小(MEM_USED)。若MEMORY_SIZE < MEM_USED,则会导致本次资源规格的调整失败。
有关调大和调小资源规格的详细操作,参见 通过调整资源规格实现租户扩缩容。