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

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

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

# 通过调整 Primary Zone 实现租户扩缩容

更新时间：2024-12-31 15:32:44

[编辑](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/400.adjust-primary-zone.md)  

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

## 前提条件

调整 Primary Zone 前，需要开启租户内的负载均衡。租户内的负载均衡由租户级配置项 `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 = 'mq_t1';

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

  ```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)。

## 增加 Primary Zone

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`、`PRIMARY_ZONE` 等信息。

   ```shell
   obclient> SELECT TENANT_ID, TENANT_NAME, PRIMARY_ZONE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';

   ```

   查询结果如下：

   ```shell
   +-----------+-------------+--------------+
   | TENANT_ID | TENANT_NAME | PRIMARY_ZONE |
   +-----------+-------------+--------------+
   |      1004 | mq_t1       | zone1;zone2  |
   +-----------+-------------+--------------+
   1 row in set

   ```

   根据查询结果可知，租户 `mq_t1` 的 `TENANT_ID` 为 1004，`PRIMARY_ZONE` 第一优先级为 `zone1`。
 4. 查询租户 `mq_t1` 当前日志流 Leader 副本位置的分布信息。

   ```shell
   obclient> SELECT TENANT_ID, LS_ID, SVR_IP, SVR_PORT, ZONE, ROLE, REPLICA_TYPE FROM oceanbase.CDB_OB_LS_LOCATIONS WHERE TENANT_ID = 1004 AND LS_ID != 1 AND ROLE = 'LEADER';

   ```

   查询结果如下：

   ```shell
   +-----------+-------+---------------+----------+--------+--------+--------------+
   | TENANT_ID | LS_ID | SVR_IP        | SVR_PORT | ZONE   | ROLE   | REPLICA_TYPE |
   +-----------+-------+---------------+----------+--------+--------+--------------+
   |      1004 |  1001 | 172.xx.xxx.xx |    2882  |  zone1 | LEADER | FULL         |
   |      1004 |  1012 | 172.xx.xxx.xx |    2882  |  zone1 | LEADER | FULL         |
   +-----------+-------+---------------+----------+--------+--------+--------------+
   2 rows in set

   ```

   根据查询结果可知，租户 `mq_t1` 有 2 个 Leader 副本提供服务，且均匀分布在 zone1 的两台机器上。
 5. 修改租户 `mq_t1` 的 `PRIMARY_ZONE` 属性，第一优先级 Zone 的个数从 1 调整为 2。

   ```shell
   obclient> ALTER TENANT mq_t1 PRIMARY_ZONE='zone1,zone2';

   ```
 6. 查询租户 `mq_t1` 的基本信息，确认 `PRIMARY_ZONE` 属性修改成功，第一优先级由 `zone1` 变更为 `zone1,zone2`。

   ```shell
   obclient> SELECT PRIMARY_ZONE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_ID = 1004;

   ```

   查询结果如下：

   ```shell
   +--------------+
   | PRIMARY_ZONE |
   +--------------+
   | zone1,zone2  |
   +--------------+
   1 row in set

   ```
 7. 再次查询租户 `mq_t1` 日志流 Leader 副本位置的分布信息。

   ```

   查询结果如下：

   ```shell
   +-----------+-------+---------------+----------+-------+--------+--------------+
   | TENANT_ID | LS_ID | SVR_IP        | SVR_PORT | ZONE  | ROLE   | REPLICA_TYPE |
   +-----------+-------+---------------+----------+-------+--------+--------------+
   |      1004 |  1001 | 172.xx.xxx.xx |    2882  | zone1 | LEADER | FULL         |
   |      1004 |  1012 | 172.xx.xxx.xx |    2882  | zone1 | LEADER | FULL         |
   |      1004 |  1013 | 172.xx.xxx.xx |    2882  | zone2 | LEADER | FULL         |
   |      1004 |  1014 | 172.xx.xxx.xx |    2882  | zone2 | LEADER | FULL         |
   +-----------+-------+---------------+----------+-------+--------+--------------+
   4 rows in set

   ```

   根据查询结果可知，租户 `mq_t1` 在 zone1、zone2 上分别各有 2 个 Leader 副本，共 4 个 Leader 副本提供服务。

通过上述示例，变更前，租户 `mq_t1` 的 `PRIMARY_ZONE` 第一优先级 Zone 的个数为 1，有 2 个 Leader 副本提供服务；变更后，租户 `mq_t1` 的 `PRIMARY_ZONE` 第一优先级 Zone 的个数由 1 变更为 2，提供服务的 Leader 副本由 2 变更为 4，增加了计算节点，从而实现了租户的扩容。

## 减少 Primary Zone

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

   ```

   查询结果如下：

   ```shell
   +-----------+-------------+--------------+
   | TENANT_ID | TENANT_NAME | PRIMARY_ZONE |
   +-----------+-------------+--------------+
   |      1004 | mq_t1       | zone1,zone2  |
   +-----------+-------------+--------------+
   1 row in set

   ```

   根据查询结果可知，租户 `mq_t1` 的 `TENANT_ID` 为 1004，`PRIMARY_ZONE` 第一优先级为 `zone1` 和 `zone2`。
 4. 查询租户 `mq_t1` 当前日志流 Leader 副本位置的分布信息。

   ```

   查询结果如下：

   ```

   根据查询结果可知，租户 `mq_t1` 有 4 个 Leader 副本提供服务，且均匀分布在 zone1、zone2 各自的两台机器上。
 5. 修改租户 `mq_t1` 的 `PRIMARY_ZONE` 属性，第一优先级 Zone 的个数从 2 调整为 1。

   ```shell
   obclient> ALTER TENANT mq_t1 PRIMARY_ZONE='zone1;zone2';

   ```
 6. 查询租户 `mq_t1` 的基本信息，确认 `PRIMARY_ZONE` 属性修改成功，由 `zone1,zone2` 变更为 `zone1;zone2`。

   ```

   查询结果如下：

   ```shell
   +--------------+
   | PRIMARY_ZONE |
   +--------------+
   |  zone1;zone2 |
   +--------------+
   1 row in set

   ```

   查询结果如下：

   ```

   根据查询结果可知，租户 `mq_t1` 在 zone1 上有 2 个 Leader 副本提供服务。

通过上述示例，变更前，租户 `mq_t1` 的 `PRIMARY_ZONE` 第一优先级 Zone 的个数为 2，有 4 个 Leader 副本提供服务；变更后，租户 `mq_t1` 的 `PRIMARY_ZONE` 第一优先级 Zone 的个数由 2 变更为 1，提供服务的 Leader 副本由 4 变更为 2，减少了计算节点，从而实现了租户的缩容。

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