---
title: "ALTER RESOURCE POOL - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: ALTER RESOURCE POOL 描述 ALTER RESOURCE POOL 语句用于修改资源池的属性，包括修改 UNIT 、 UNIT_NUM 和 ZONE_LIST 。 使用限制及注意事项 使用 ALTER RESOURCE POOL 语句修改资源池属性时，每条语句每次仅支持修改一个属性，如果需要同时修改…
---
切换语言

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

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

# ALTER RESOURCE POOL

更新时间：2026-06-08 17:39:28

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/100.system-tenants/300.alter-resource-pool.md)  

## 描述

`ALTER RESOURCE POOL` 语句用于修改资源池的属性，包括修改 `UNIT`、`UNIT_NUM` 和 `ZONE_LIST`。

## 使用限制及注意事项

- 使用 `ALTER RESOURCE POOL` 语句修改资源池属性时，每条语句每次仅支持修改一个属性，如果需要同时修改 `UNIT`、`UNIT_NUM`、`ZONE_LIST` 中两条及以上的属性，需要分多条语句执行。
 - OceanBase 数据库当前版本支持租户的同构 Zone 模式和异构 Zone 模式。同构 Zone 模式下，要求租户下各 Zone 的 Unit 数量必须相同；异构 Zone 模式下，租户下各 Zone 的 Unit 数量可以不同，但限制一个租户最多只有两种 `unit_num`。在增加或减少 `UNIT_NUM` 时：

     - 异构 Zone 模式下，无论资源池是否已分配给租户使用，均可以使用 `ALTER RESOURCE POOL` 语句增加或减少 `UNIT_NUM`。

      #### 注意

      通常情况下，对于已有租户或者升级上来的租户，默认均为同构 Zone 模式，如果需要开启异构 Zone 模式，需要将配置项 `zone_deploy_mode` 的值修改为 `hetero`（异构 Zone 模式）。修改后，不支持再改回 `homo`（同构 Zone 模式）。
     - 同构 Zone 模式下，如果资源池已分配给租户使用，则不能使用 `ALTER RESOURCE POOL` 语句，需要使用 `ALTER RESOURCE TENANT` 语句进行修改。有关 `ALTER RESOURCE TENANT` 语句的详细介绍，参见 [ALTER RESOURCE TENANT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683369)。

## 权限要求

仅 `sys` 租户的 `root` 用户（`root@sys`）可以修改资源池，其他租户不支持修改资源池。

## 语法

### ALTER RESOURCE POOL

```sql
ALTER RESOURCE POOL pool_name
      UNIT [=] unit_name
    | UNIT_NUM [=] unit_num [DELETE UNIT = (unit_id_list)]
    | ZONE_LIST [=] ('zone_name' [, 'zone_name' ...]);

```

## 参数说明

| **参数** | **描述** |
| --- | --- |
| unit_name | 修改资源池要使用的资源规格名称。 |
| unit_num | 指定修改后单个 Zone 下 Unit 的个数。增加 `unit_num` 时，其值需要小于等于目标 Zone 内节点的个数。 <main id="notice" type=notice'>  #### 注意    异构 Zone 模式下，增加或减少 `unit_num` 时，租户下各 Zone 的 `unit_num` 个数可以不同，但一个租户的所有 Zone 最多只能有两种 `unit_num`。    例如，一租户有 3 个资源池 `pool1`、`pool2`、`pool3`，其 `unit_num` 分别为 2、4、4，如果将 `pool3` 的 `unit_num` 修改为 1，则系统会报 `More than two distinct unit_num in a single tenant not allowed` 的错误。 |
| DELETE UNIT | 减小 `unit_num` 时，使用 `DELETE UNIT` 可以删除指定的 Unit。如果不指定 `DELETE UNIT`，系统将随机删除相应个数的 Unit。 <main id="notice" type=notice'>  #### 注意    使用 `DELETE UNIT` 删除指定的 `unit_id` 时，如果有多个 Zone，还需要满足以下条件：    - 删除的 `unit_id` 列表中，每个 Zone 内删除的 Unit 个数必须相等。 - 待删除的 `unit_id` 列表中，每个 Zone 内删除后还剩下的 Unit 个数需要与指定的 `unit_num` 一致。 |
| ZONE_LIST | 指定修改后资源池的 Zone 列表。 |

## 示例

- 不能同时修改资源池 `pool1` 的多个属性，例如以下语句同时修改了 `UNIT`、`UNIT_NUM` 与 `ZONE` 属性，执行将报错。

  ```sql
  obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT='unit2', UNIT_NUM=1, ZONE_LIST=('zone1');
  ERROR 1235 (0A000): alter unit_num, resource_unit, zone_list in one cmd not supported

  ```

  特别地，在减小 `UNIT_NUM` 时，可以删除指定的 Unit。

  ```sql
  obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT_NUM=1 DELETE UNIT = (1002);

  ```
 - 将资源池 `pool1` 所使用的资源规格修改为 `unit2`。

  ```sql
  obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT='unit2';

  ```

## 相关文档

- [查看资源池](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682930)
 - [修改资源池属性](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682463)

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