---
title: "修改资源池 | OceanBase 文档中心"
description: "修改资源池 修改资源池是实现租户扩容或缩容的另一种方式。例如，在每个 Zone 中增加或减少节点数量，可以通过修改参数 UNIT_NUM 来实现。 通过 SQL 语句修改资源池 修改资源池语句的语法如下： ALTER RESOURCE POOL pool_name UNIT [=] unit_name, UNIT_N…"
---
切换语言

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

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

# 修改资源池

更新时间：2026-06-27 09:28:08

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0/zh-CN/500.administrator-guide/600.basic-database-management/300.manage-resources/500.manage-resource-pools-1/300.modifies-the-resource-pool.md)  

修改资源池是实现租户扩容或缩容的另一种方式。例如，在每个 Zone 中增加或减少节点数量，可以通过修改参数 `UNIT_NUM` 来实现。

## 通过 SQL 语句修改资源池

修改资源池语句的语法如下：

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

```

语句使用说明：

- 该语句仅支持由 `sys` 租户的管理员执行。
 - 修改资源池的命令每次仅支持修改一个参数。
 - `UNIT_NUM` 表示指定修改每个 Zone 下的资源单元个数，取值需要小于等于对应 Zone 中的 OBServer 的个数。

  减小 `UNIT_NUM` 时，使用 `DELETE UNIT` 可以明确指定本次缩容即将删除的 Unit。如果不指定 `DELETE UNIT`，则系统将自动选择 Unit 进行删除。

  > **注意**
  >
  >  
  >
  > 使用 `DELETE UNIT` 明确指定待删除的 `unit_id` 时，还需要满足以下条件：
  >
  >  
  >    - 待删除的 `unit_id` 列表中，每个 Zone 内删除的 Unit 的数量必须相等，目前认为删除列表中各 Zone 的 Unit 数量不相同的缩容操作属于非法操作。
  >    - 待删除的 `unit_id` 列表中，每个 Zone 内删除的 Unit 的数量和 `UNIT_NUM` 的数量需要匹配。
  >
  >
  >
  >     指定待删除的 `unit_id` 时， `unit_id` 可通过查询视图 `GV$OB_UNITS` 获取。
 - `ZONE_LIST` 表示指定资源池的使用范围。

假设当前环境中存在如下所示的资源单元和资源池。

```sql
obclient> CREATE RESOURCE UNIT unit1 MAX_CPU 6,MIN_CPU 6, MEMORY_SIZE '36G', MAX_IOPS 1024, MIN_IOPS 1024, IOPS_WEIGHT 0, LOG_DISK_SIZE '2G';

obclient> CREATE RESOURCE POOL pool1 UNIT 'unit1', UNIT_NUM 2, ZONE_LIST ('z1','z2','z3');

```

则修改资源池的示例如下：

- 修改资源池 `pool1` 的资源单元，修改后，`unit2` 替代 `unit1` 属于资源池`pool1`。

  ```sql
  obclient> CREATE RESOURCE UNIT unit2 MAX_CPU 8, MIN_CPU=8, MEMORY_SIZE '40G';

  obclient> ALTER RESOURCE POOL pool1 unit='unit2';

  ```
 - 不指定 `unit_id`，将资源池 `pool1` 中每个 Zone 下的资源单元个数修改为 1 个。

  ```sql
  obclient>ALTER RESOURCE POOL pool1 UNIT_NUM = 1;

  ```
 - 指定删除资源池 `pool1` 中 `unit_id` 为 `1001` 、`1003`、`1005` 的资源单元，使每个 Zone 下的资源单元个数为 1 个。

  ```sql
  obclient> ALTER RESOURCE POOL pool1 UNIT_NUM 1 DELETE UNIT = (1001, 1003,1005);

  ```
 - 修改资源池 `pool1`， 使资源池 `pool1` 中 `ZONE_LIST` 的范围扩大到 `'z1','z2','z3','z4'`。

  ```sql
  obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');

  ```
 - 每次只能修改资源池的一个参数，同时修改资源池的两个参数时，会报错。

  ```sql
  obclient> ALTER RESOURCE POOL pool1 unit='unit1', zone_list=('HANGZHOU_1');
  ERROR 1235 (0A000): alter unit_num, resource_unit, zone_list in one cmd not supported

  ```

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