---
title: "租户资源水平扩缩容 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: 租户资源水平扩缩容 租户资源的水平管理主要是通过调整资源池的 UNIT_NUM 来动态调整租户的可用资源。具体表现为，您可以通过调整资源池的 UNIT_NUM 来调整资源池下每个 Zone 内 Unit 数量，进而提高或降低该租户在对应 Zone 上的服务能力。OceanBase 数据库 V4.0 版本后，不再支持租…
---
切换语言

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

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

# 租户资源水平扩缩容

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

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

租户资源的水平管理主要是通过调整资源池的 `UNIT_NUM` 来动态调整租户的可用资源。具体表现为，您可以通过调整资源池的 `UNIT_NUM` 来调整资源池下每个 Zone 内 Unit 数量，进而提高或降低该租户在对应 Zone 上的服务能力。OceanBase 数据库 V4.0 版本后，不再支持租户的多个 Resource Pool 的 Unit 数目异构。

`UNIT_NUM` 的变更也分为两类，即调大 `UNIT_NUM` 和调小 `UNIT_NUM`：

- 对于未授予租户的 Resource Pool，可以单独调小或调大 Resource Pool 的 `UNIT_NUM`。
 - 对于已授予租户的 Resource Pool，只能同时调整所有已授予租户的 Resource Pool 的 `UNIT_NUM`，无法单独调整。

从 V4.0.0 版本开始，OceanBase 数据库要求租户内每个 Zone 的 Unit 个数必须保持一致。为了方便统一管理各个 Zone 的 Unit，系统引入了 Unit Group 机制，即不同 Zone 之间相同编号（UNIT_GROUP_ID）的 Unit 属于同一个 Unit Group。调大或调小 `UNIT_NUM` 本质上是以 Unit Group 为单位创建和删除 Unit。

调整资源池 `UNIT_NUM` 的示例语句如下：

```sql
obclient> CREATE RESOURCE POOL rp1 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2');

1. resource pool 没有与租户绑定时调整 resource pool unit_num：

obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 3; // 调大 UNIT_NUM
obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 2; // 调小 UNIT_NUM
obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 1 DELETE UNIT = (1001, 1003); // 指定资源单元调小 UNIT_NUM

2. resource pool 与租户绑定时调整租户 unit_num：

obclient> CREATE RESOURCE POOL rp2 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2');
obclient> CREATE RESOURCE POOL rp3 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone3');
obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('rp2', 'rp3') ...;
obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 3; // 同时调大两个 Resource Pool 的 UNIT_NUM
obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 1; // 同时调小两个 Resource Pool 的 UNIT_NUM

```

## 调大 UNIT_NUM

- `UNIT_NUM` 调大示例 1:

  创建 Resource Pool 后，在未授予租户时，可以单独调大单个 Resource Pool 的 `UNIT_NUM`。

  ```shell
  obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2', 'zone3');

  ```

  单独调大单个 Resource Pool 的 `UNIT_NUM`，语句如下。

  ```shell
  obclient> ALTER RESOURCE POOL r_p0 UNIT_NUM 3;

  ```
 - `UNIT_NUM` 调大示例 2:

  调大 `UNIT_NUM` 通常出现在租户扩容的场景中，例如，对于已授予租户的 Resource Pool：

  ```

  ```shell
  obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0');

  ```

  示例中，租户 `tt` 使用资源池 `r_p0`。在 `zone1`、`zone2`、`zone3` 每个 Zone 上分别有 2 个 Unit，随着业务量的不断变大，每个 Zone 上 2 个 Unit 无法承载当前的业务量，因此需要考虑调大 `UNIT_NUM` 来提高租户的服务能力，以满足新的业务需求。

  您可以使用以下语句将租户在资源池 `r_p0` 的 Unit 数量调整为 `3`，进而提高租户的服务能力。

  ```sql
  obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 3;

  ```

## 调小 UNIT_NUM

- `UNIT_NUM` 调小示例 1:

  创建 Resource Pool 后，在未授予租户时，可以单独调小单个 Resource Pool 的 `UNIT_NUM`。

  ```

  单独调小单个 Resource Pool 的 `UNIT_NUM`，语句如下：

  ```shell
  obclient> ALTER RESOURCE POOL r_p0 UNIT_NUM 1;

  ```
 - `UNIT_NUM` 调小示例 2:

  调小 `UNIT_NUM` 通常出现在租户缩容的场景中，例如，对于已授予租户的 Resource Pool：

  ```

  ```

  示例中，租户 `tt` 使用资源池 `r_p0`。在 `zone1`、`zone2`、`zone3` 每个 Zone 上分别有 2 个 Unit，随着业务调整，不再需要每个 Zone 上 2 个 Unit ，因此需要考虑调小 `UNIT_NUM`，以满足新的业务需求。

  您可以使用以下语句将租户在资源池 `r_p0` 的 Unit 数量调整为 `1`，进而降低租户的服务能力。

  ```shell
  obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 1;

  ```

  或者，也可以通过删除指定 `UNIT_GROUP` 的方式来调小 `UNIT_NUM` 的数量.

  ```shell
  obclient> ALTER RESOURCE TENANT tt  UNIT_NUM = 1 DELETE UNIT_GROUP =(1001);

  ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
