---
title: "ALTER RESOURCE POOL - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: "ALTER RESOURCE POOL 描述 该语句用于修改资源池。 语法 ALTER RESOURCE POOL { pool_name UNIT [=] unit_name, UNIT_NUM [=] unit_num [DELETE UNIT = (unit_id_list)], ZONE_LIST [=] (…"
---
切换语言

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

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

# ALTER RESOURCE POOL

更新时间：2023-08-01 11:45:47

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

## 描述

该语句用于修改资源池。

## 语法

```sql
ALTER RESOURCE POOL {
    pool_name
    UNIT [=] unit_name,
    UNIT_NUM [=] unit_num [DELETE UNIT = (unit_id_list)],
    ZONE_LIST [=] ('zone_name' [, 'zone_name' ...])
 | MERGE
   ('pool_name'[, 'pool_name' ...])
    INTO ('merge_pool_name')
 | SPLIT INTO ('pool_name' [, 'pool_name' ...])
   ON ('zone_name' [, 'zone_name' ...])
};

```

## 参数解释

| **参数** | **描述** |
| --- | --- |
| unit_name | 指定要使用的资源单元配置的名称。 |
| unit_num | 指定修改后一个 Zone 下的 Unit 个数，取值要小于等于对应 Zone 中的 OBServer 个数。   > **注意**   > 当资源池分配给租户之后，无法再通过 `ALTER RESOURCE POOL` 语法修改资源池 Unit 个数，需要通过 `ALTER RESOURCE TENANT` 语法，使用方法，参见 [ALTER RESOURCE TENANT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001700694)。 |
| unit_id_list | 减小 `unit_num` 时，使用 `DELETE UNIT` 可以明确指定本次缩容即将删除的 Unit。 不指定 `DELETE UNIT` 时，系统将自动选择 Unit 进行删除。    **注意** 使用 `DELETE UNIT` 明确指定删除的 `unit_id` 时需要还需要满足以下条件：   - 删除的 `unit_id` 列表中，每个 Zone 内删除的 Unit 的数量必须相等，目前认为删除列表中各 Zone 的 Unit 数量不相同的缩容操作非法。 - 删除的 `unit_id` 列表中，每个 Zone 内删除的 Unit 的数量和 `unit_num` 的数量需要匹配。 |
| ZONE_LIST | 指定资源池的 Zone 列表。 |
| MERGE | 合并多个资源池。 合并资源池时，不影响资源池被租户使用，只是在 Root Service的管理层看来是多个资源池合并为一个资源池，方便统一维护。 |
| SPLIT | 将资源池分裂为几个资源池。 |
| merge_pool_name | 合并后的资源池名称。 |

## 示例

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

  ```sql
  obclient> 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> ALTER RESOURCE POOL pool1 UNIT_NUM=1 DELETE UNIT = (1002);
  Query OK, 0 rows affected

  ```
 - 修改资源池 `pool1` 的 `UNIT` 属性。

  ```sql
  obclient> ALTER RESOURCE POOL pool1 UNIT='unit2';
  Query OK, 0 rows affected

  ```
 - 将资源池 `pool1` 分裂成 `pool10` 和 `pool11`。

  ```sql
  obclient> CREATE RESOURCE POOL pool1 unit='unit1',unit_num=1,zone_list=('zone1','zone2');
  Query OK, 0 rows affected

  obclient> ALTER RESOURCE POOL pool1 SPLIT INTO ('pool10','pool11') ON ('zone1','zone2');
  Query OK, 0 rows affected

  ```
 - 假设 `tenant1` 租户使用了三个资源池，分别为 `pool0`、`pool1` 与 `pool2` ，现将三个资源池合并统一管理。

  ```sql
  obclient>ALTER RESOURCE POOL MERGE ('pool0','pool1','pool2') INTO ('pool3');
  Query OK, 0 rows affected

  ```

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