---
title: "租户资源垂直扩缩容 - OceanBase 数据库 V4.3.1 | OceanBase 文档中心"
description: 租户资源垂直扩缩容 租户资源的垂直管理主要是通过调整租户资源池的资源规格来调整租户的服务能力。调整租户资源池的规格有两种方法：修改资源配置和切换资源配置。 修改资源配置 修改资源池的资源配置，即直接调整资源配置的 CPU 或 Memory 等的值，进而直接影响租户在该资源池上的资源规格和服务能力。 假设创建了资源池 …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.1

# 租户资源垂直扩缩容

更新时间：2026-04-10 11:58:01

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.1/zh-CN/700.reference/100.oceanbase-database-concepts/500.distributed-database-objects/400.dynamic-scaling/200.scale-in-and-scale-out-of-tenant-resources/300.vertical-scaling-of-tenant-resources.md)  

租户资源的垂直管理主要是通过调整租户资源池的资源规格来调整租户的服务能力。调整租户资源池的规格有两种方法：修改资源配置和切换资源配置。

## 修改资源配置

修改资源池的资源配置，即直接调整资源配置的 CPU 或 Memory 等的值，进而直接影响租户在该资源池上的资源规格和服务能力。

假设创建了资源池 `pool1` 和 `pool2` ，且其资源配置都是 `uc1`，可以通过修改资源池的资源配置的方式，将资源配置 `uc1` 的 `MAX_CPU` 调整为 `6`；`MEMORY_SIZE` 调整为 `36G`，其他选项不变。示例语句如下：

```sql
obclient> CREATE RESOURCE UNIT uc1 MAX_CPU 5, MIN_CPU 4, MEMORY_SIZE '36G', MAX_IOPS 10000, MIN_IOPS 10000, LOG_DISK_SIZE = '108G';
obclient>CREATE RESOURCE POOL pool1 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('z1', 'z2');
obclient>CREATE RESOURCE POOL pool2 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z3');
obclient>CREATE TENANT tt resource_pool_list=('pool1','pool2');
obclient>ALTER RESOURCE UNIT uc1 MAX_CPU 6, MEMORY_SIZE '36G';

```

通过调整资源配置的各个选项，可调整租户的资源池在对应 Zone 上的资源规格，进而影响租户的服务能力。

## 切换资源配置

切换资源池的资源配置，即调整资源池下每个资源单元的资源规格，进而调整租户在该资源池上的资源规格和服务能力。

假设资源池 `rp1` 之前的资源配置为 `uc1`，则通过切换资源池的资源配置将 `rp1` 的资源配置从 `uc1` 变更为 `uc2` 的示例语句如下：

```sql
obclient> ALTER RESOURCE POOL rp1 UNIT 'uc2';

```

## 示例及使用限制

通常情况下，通过修改资源配置和切换资源配置的方式都能对租户的服务能力进行调整。对应到租户层面，实际上是调整了租户资源单元的规格。对资源规格的修改通常有两种场景，即调大资源规格和调小资源规格。

### 调大资源规格

调大资源规格主要用在租户的资源扩容场景中，可分别对 CPU 和 Memory 进行资源扩容。

示例：

- 示例 1

     1. 创建一个资源配置 `u_c0`，并创建一个资源池 `pool1`，`pool1` 使用 `u_c0` 作为自己的资源配置。

       ```sql
       obclient> CREATE RESOURCE UNIT u_c0 MAX_CPU 5, MIN_CPU 4, MEMORY_SIZE '36G', MAX_IOPS 10000, MIN_IOPS 10000, LOG_DISK_SIZE = '108G';
       obclient> CREATE RESOURCE POOL pool1 unit='u_c0', unit_num=3, zone_list=('z1','z2','z3');

       ```
     2. 调大 `u_c0` 的 `MIN_CPU`、`MAX_CPU` 和 `MEMORY_SIZE`。

       ```sql
       obclient> ALTER RESOURCE UNIT u_c0 MAX_CPU 10, MIN_CPU 8, MEMORY_SIZE '72G';

       ```

       该调整旨在调大资源池 `pool1` 的资源规格，目的是提高相应租户的服务能力。
 - 示例 2

     1. 创建两个资源配置 `u_c0` 和 `u_c1`，并创建一个资源池`pool1`，`pool1` 使用 `u_c0` 作为自己的资源配置。

       ```sql
       obclient> CREATE RESOURCE UNIT u_c0 MAX_CPU 5, MIN_CPU 4, MEMORY_SIZE '36G', MAX_IOPS 10000, MIN_IOPS 10000, LOG_DISK_SIZE = '108G';
       obclient> CREATE RESOURCE UNIT u_c1 MAX_CPU 10, MIN_CPU 8, MEMORY_SIZE '72G', MAX_IOPS 10000, MIN_IOPS 10000, LOG_DISK_SIZE = '216G';
       obclient> CREATE RESOURCE POOL pool1 unit='u_c0', unit_num=3, zone_list=('z1','z2','z3');

       ```
     2. 将 `pool1` 的资源配置调整成 `u_c1`。

       ```sql
       obclient> ALTER RESOURCE POOL pool1 unit='u_c1';

       ```

       该调整旨在调大资源池 `pool1` 的资源规格，目的是提高相应租户的服务能力。

注意，在调大资源规格时，无论是通过修改资源配置还是切换资源配置，调整后的资源总量都满足以下要求：

```javascript
Sum(min_cpu) <= CPU_CAPACITY;
Sum(memory_size) <= MEM_CAPACITY;
Sum(max_cpu) <= CPU_CAPACITY * resource_hard_limit;

```

否则，系统会报错，提示扩容失败。

### 调小资源规格

根据上面调大资源规格的示例，系统还支持将资源池的资源规格调小。调小资源规格能够保证机器资源规格足够用，但仍然存在限制，该限制主要出现在调小资源规格的 `MEMORY_SIZE` 选项上，一个租户在某物理机上的实际内存使用量记录为 `MEM_USED`，在调小其资源规格时，对于为租户提供服务的每台物理机，需要满足资源配置的 `MEMORY_SIZE` 大于等于租户在该物理机上当前的实际使用内存。如果在调整时，`MEMORY_SIZE` 的值小于 `MEM_USED`，则本次资源规格的调整会失败，需要进行一次数据的转储来释放内存，然后再重新尝试调小资源池的配置规格。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
