---
title: "通过调整 Unit Number 实现租户扩缩容 - OceanBase 数据库 V4.2.0 | OceanBase 文档中心"
description: 通过调整 Unit Number 实现租户扩缩容 租户扩容和缩容本质上是提高和降低租户的服务能力，包括计算能力和存储容量。可以通过提高单节点的服务能力达成，也可以通过增加服务节点达成。本文介绍如何通过修改 Unit Number，从而增加或减少服务节点，达到租户总服务能力的提升或降低，实现租户的扩容或缩容。 修改 U…
---
切换语言

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

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

# 通过调整 Unit Number 实现租户扩缩容

更新时间：2024-01-19 15:10:51

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.0/zh-CN/600.manage/200.tenant-management/600.common-tenant-operations/800.tenant-scale-in-and-out/300.adjust-unit-number.md)  

租户扩容和缩容本质上是提高和降低租户的服务能力，包括计算能力和存储容量。可以通过提高单节点的服务能力达成，也可以通过增加服务节点达成。本文介绍如何通过修改 Unit Number，从而增加或减少服务节点，达到租户总服务能力的提升或降低，实现租户的扩容或缩容。

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

## 前提条件

在进行租户的扩容和缩容操作前，需要进行以下操作：

- 开启租户内的负载均衡，实现分区在服务节点上的均衡。

  租户内的负载均衡由租户级配置项 `enable_rebalance` 控制。该配置项在系统租户下用于控制是否进行租户间的负载均衡；用户租户下用于控制是否进行租户内均衡。默认值为 `true`，设置后不需要重启 OBServer 节点，立即生效。

  开启租户内的负载均衡的语句如下：

     - 系统租户开启指定租户内的负载均衡

      ```sql
      ALTER SYSTEM SET enable_rebalance = true TENANT = 'tenant_name';

      ```

      该语句仅将用户租户下配置项 `enable_rebalance` 的值设置为 `true`。

      示例：

      ```sql
      ALTER SYSTEM SET enable_rebalance = true TENANT = 'oracle';

      ```
     - 系统租户开启租户间的负载均衡，同时开启所有租户内的负载均衡

      ```sql
      ALTER SYSTEM SET enable_rebalance = true TENANT = ALL;

      ```

      该语句表示系统租户下和用户租户下配置项 `enable_rebalance` 的值均为 `true`。
     - 用户租户开启本租户内的负载均衡

          MySQL 模式   Oracle 模式

      MySQL 租户开启本租户的租户内负载均衡和租户下的 Transfer 功能的语句如下：

      ```sql
      ALTER SYSTEM SET enable_rebalance = true;

      ```

      Oracle 租户开启本租户的租户内负载均衡和租户下的 Transfer 功能的语句如下：

      ```sql
      ALTER SYSTEM SET enable_rebalance = 'true';

      ```

  更多配置项 enable_rebalance 的详细说明，请参见 [enable_rebalance](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000035101)。
 - 由于空闲的资源池会被计算为占用的资源，故在扩容前，如果有租户被删除，建议与租户对应的资源池也一并删除，以便释放资源。

  删除资源池的相关操作，参见 [删除资源池](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033915)。
 - 进行租户缩容前，建议进行一轮转储以便释放租户正在使用的内存。

  手动触发转储的相关操作，参见 [手动触发转储](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000034008)。

## 调大 Unit Number

下面以调大租户 `mq_t1` 的 Unit Number 为例来介绍操作方法。

1. 使用 `root` 用户登录到集群的 `sys` 租户。

   ```shell
   obclient -h172.30.xxx.xxx -P2883 -uroot@sys#obdemo -pxxxx -A

   ```
 2. 进入 `oceanbase` 数据库。

   ```sql
   use oceanbase;

   ```
 3. 查看租户 `mq_t1` 信息，获取其 `TENANT_ID`。

   ```sql
   SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';

   ```

   查询结果如下：

   ```shell
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   | TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME                | MODIFY_TIME                | PRIMARY_ZONE      | LOCALITY                                    | PREVIOUS_LOCALITY | COMPATIBILITY_MODE | STATUS | IN_RECYCLEBIN | LOCKED | TENANT_ROLE | SWITCHOVER_STATUS | SWITCHOVER_EPOCH | SYNC_SCN            | REPLAYABLE_SCN      | READABLE_SCN        | RECOVERY_UNTIL_SCN  | LOG_MODE     | ARBITRATION_SERVICE_STATUS | UNIT_NUM | COMPATIBLE |
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   |      1004 | mq_t1       | USER        | 2023-07-01 19:16:39.739258 | 2023-07-01 19:17:35.326317 | zone1;zone2;zone3 | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 | NULL              | ORACLE             | NORMAL | NO            | NO     | PRIMARY     | NORMAL            |                0 | 1688363370009667411 | 1688363370009667411 | 1688363370009667411 | 4611686018427387903 | NOARCHIVELOG | DISABLED                   |        1 | 4.2.0.0    |
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   1 row in set

   ```

   查询结果中，`UNIT_NUM` 的值为 `1` 表示租户的 Unit Number 数为 `1`。
 4. 查看租户 `mq_t1` 所拥有的 Unit。

   ```sql
   SELECT * FROM oceanbase.DBA_OB_UNITS WHERE TENANT_ID = 1004;

   ```

   查询结果如下：

   ```shell
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | CREATE_TIME                | MODIFY_TIME                | ZONE  | SVR_IP         | SVR_PORT | MIGRATE_FROM_SVR_IP | MIGRATE_FROM_SVR_PORT | MANUAL_MIGRATE | UNIT_CONFIG_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   |    1008 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.723840 | 2023-07-01 19:16:39.744524 | zone1 | xx.xx.xx.198   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1010 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.727011 | 2023-07-01 19:16:39.744524 | zone2 | xx.xx.xx.197   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1012 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.731235 | 2023-07-01 19:16:39.745584 | zone3 | xx.xx.xx.192   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   3 rows in set

   ```

   根据查询结果可知，租户 `mq_t1` 的每个 Zone 均有 1 个 Unit，且这 3 个 Unit 属于同一个 Unit Group。
 5. 把租户 `mq_t1` 的 `UNIT_NUM` 修改为 2。

   ```sql
   ALTER RESOURCE TENANT mq_t1 UNIT_NUM = 2;

   ```
 6. 查看租户 `mq_t1` 修改后的 Unit。

   ```

   查询结果如下：

   ```shell
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | CREATE_TIME                | MODIFY_TIME                | ZONE  | SVR_IP         | SVR_PORT | MIGRATE_FROM_SVR_IP | MIGRATE_FROM_SVR_PORT | MANUAL_MIGRATE | UNIT_CONFIG_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   |    1008 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.723840 | 2023-07-01 19:16:39.744524 | zone1 | xx.xx.xx.198   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1010 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.727011 | 2023-07-01 19:16:39.744524 | zone2 | xx.xx.xx.197   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1012 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.731235 | 2023-07-01 19:16:39.745584 | zone3 | xx.xx.xx.192   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1016 |      1004 | ACTIVE |             1002 |          1006 | 2023-07-03 14:23:00.298237 | 2023-07-03 14:23:00.298237 | zone1 | xx.xx.xx.196   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1017 |      1004 | ACTIVE |             1002 |          1006 | 2023-07-03 14:23:00.300350 | 2023-07-03 14:23:00.300350 | zone2 | xx.xx.xx.194   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1018 |      1004 | ACTIVE |             1002 |          1006 | 2023-07-03 14:23:00.302460 | 2023-07-03 14:23:00.302460 | zone3 | xx.xx.xx.64    |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   6 rows in set

   ```

通过上述示例，将租户 `mq_t1` 的 Unit Number 从 1 变更为 2。变更前租户在每个 Zone 的 Unit 个数为 1；变更后租户在每个 Zone 的 Unit 个数为 2，从而实现了租户扩容。

## 调小 Unit Number

下面以调小租户 `mq_t1` 的 Unit Number 为例来介绍操作方法。

   ```shell
   obclient -h172.xxx.xxx.xxx -P2883 -uroot@sys#obdemo -pxxxx -A

   ```

   查询结果如下：

   ```shell
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   | TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME                | MODIFY_TIME                | PRIMARY_ZONE      | LOCALITY                                    | PREVIOUS_LOCALITY | COMPATIBILITY_MODE | STATUS | IN_RECYCLEBIN | LOCKED | TENANT_ROLE | SWITCHOVER_STATUS | SWITCHOVER_EPOCH | SYNC_SCN            | REPLAYABLE_SCN      | READABLE_SCN        | RECOVERY_UNTIL_SCN  | LOG_MODE     | ARBITRATION_SERVICE_STATUS | UNIT_NUM | COMPATIBLE |
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   |      1004 | mq_t1       | USER        | 2023-07-01 19:16:39.739258 | 2023-07-01 19:17:35.326317 | zone1;zone2;zone3 | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 | NULL              | ORACLE             | NORMAL | NO            | NO     | PRIMARY     | NORMAL            |                0 | 1688364899374900659 | 1688364899374900659 | 1688364899148955397 | 4611686018427387903 | NOARCHIVELOG | DISABLED                   |        2 | 4.2.0.0    |
   +-----------+-------------+-------------+----------------------------+----------------------------+-------------------+---------------------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+----------+------------+
   1 row in set

   ```

   查询结果中，`UNIT_NUM` 的值为 `2` 表示租户的 Unit Number 数为 2。
 4. 查看租户 `mq_t1` 所拥有的 Unit。

   ```

   查询结果如下：

   ```shell
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | CREATE_TIME                | MODIFY_TIME                | ZONE  | SVR_IP         | SVR_PORT | MIGRATE_FROM_SVR_IP | MIGRATE_FROM_SVR_PORT | MANUAL_MIGRATE | UNIT_CONFIG_ID | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   |    1007 |      1004 | ACTIVE |             1002 |          1001 | 2023-07-01 19:15:09.721728 | 2023-07-01 19:16:39.743467 | zone1 | xx.xx.xx.196   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1008 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.723840 | 2023-07-01 19:16:39.744524 | zone1 | xx.xx.xx.198   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1009 |      1004 | ACTIVE |             1002 |          1001 | 2023-07-01 19:15:09.725952 | 2023-07-01 19:16:39.744524 | zone2 | xx.xx.xx.194   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1010 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.727011 | 2023-07-01 19:16:39.744524 | zone2 | xx.xx.xx.197   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1011 |      1004 | ACTIVE |             1002 |          1001 | 2023-07-01 19:15:09.729124 | 2023-07-01 19:16:39.745584 | zone3 | xx.xx.xx.64    |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   |    1012 |      1004 | ACTIVE |             1002 |          1002 | 2023-07-01 19:15:09.731235 | 2023-07-01 19:16:39.745584 | zone3 | xx.xx.xx.192   |     2882 | NULL                |                  NULL | NULL           |           1001 |       2 |       2 |  5368709120 |   16106127360 |    20000 |    20000 |           2 |
   +---------+-----------+--------+------------------+---------------+----------------------------+----------------------------+-------+----------------+----------+---------------------+-----------------------+----------------+----------------+---------+---------+-------------+---------------+----------+----------+-------------+
   6 rows in set

   ```

   根据查询结果可知，租户 `mq_t1` 的每个 Zone 均有 2 个 Unit。其中，`UNIT_ID` 为 `1007`、`1009`、`1011` 的 Unit 属于同一个 Unit Group，且其 `UNIT_GROUP_ID` 为 `1001`；`UNIT_ID` 为 `1008`、`1010`、`1012` 的 Unit 属于另一个 Unit Group，且其 `UNIT_GROUP_ID` 为 `1002`。
 5. 把租户 `mq_t1` 的 `UNIT_NUM` 修改为 1。

      - 通过随机删除 `UNIT_GROUP` 的方式来调小 `UNIT_NUM` 的数量。

       ```sql
       ALTER RESOURCE TENANT mq_t1 UNIT_NUM = 1;

       ```

       该语句执行后，对于每个 Zone 上 2 个 Unit 的场景，系统会随机删除一个 Unit Group。
      - 通过删除指定 `UNIT_GROUP` 的方式来调小 `UNIT_NUM` 的数量

       ```sql
       ALTER RESOURCE TENANT mq_t1 UNIT_NUM = 1 DELETE UNIT_GROUP =(1001);

       ```

       该语句执行后，对于每个 Zone 上 2 个 Unit 的场景，系统会将指定的 Unit Group 删除。
 6. 查看租户 `mq_t1` 修改后的 Unit。

   ```

   查询结果如下：

   ```

通过上述示例，将租户 `mq_t1` 的 Unit Number 从 2 变更为 1。变更前租户在每个 Zone 的 Unit 个数为 2；变更后租户在每个 Zone 的 Unit 个数为 1，从而实现了租户缩容。

## 相关文档

- [租户扩缩容介绍](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033912)

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