---
title: github-fill
description: 修改租户属性 OceanBase 数据库支持修改用户租户的属性，包括修改租户的副本数、Zone 列表、主 Zone 以及系统变量值等。本文介绍如何修改租户属性。 背景信息 租户属性修改的常见场景： 修改租户的 Primary Zone：Primary Zone 描述了 Leader 副本的偏好位置，而 Leader …
---
切换语言

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

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

# 修改租户属性

更新时间：2026-04-10 11:58:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.1/zh-CN/600.manage/200.tenant-management/600.common-tenant-operations/1000.modify-tenant-properties.md)  

OceanBase 数据库支持修改用户租户的属性，包括修改租户的副本数、Zone 列表、主 Zone 以及系统变量值等。本文介绍如何修改租户属性。

## 背景信息

租户属性修改的常见场景：

- 修改租户的 Primary Zone：Primary Zone 描述了 Leader 副本的偏好位置，而 Leader 副本承载了业务的强一致读写流量，即 Primary Zone 决定了 OceanBase 数据库的流量分布。通过修改 Primary Zone 属性可以切换业务流量，或者是从一个机房切换到另一个机房，或者是从一个城市切换到另一个城市，适用于容灾场景、扩缩容等场景。
 - 修改租户的 Locality：Locality 描述了数据的多个副本的类型及分布策略。通过修改 Locality 属性可以调整租户的部署架构，适用于机房搬迁、调整容灾级别等场景。

## 操作步骤

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

   ```shell
   obclient -h172.30.xx.xx -P2883 -uroot@sys#cluster -p**** -A

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

   ```sql
   USE oceanbase;

   ```
 3. 通过 `DBA_OB_TENANTS` 视图，查看租户的配置信息。

   以查询租户 `mq_t1` 的配置信息为例：

   ```shell
   obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';
   +-----------+-------------+-------------+----------------------------+----------------------------+--------------+------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+
   | 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 |
   +-----------+-------------+-------------+----------------------------+----------------------------+--------------+------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+
   |      1006 | mq_t1       | USER        | 2023-05-18 15:48:57.447657 | 2023-05-18 15:49:12.857944 | zone1;zone2  | FULL{1}@zone1, FULL{1}@zone2 | NULL              | MYSQL              | NORMAL | NO            | NO     | PRIMARY     | NORMAL            |                0 | 1684396167132057328 | 1684396167132057328 | 1684396167051160964 | 4611686018427387903 | NOARCHIVELOG | DISABLED                   |
   +-----------+-------------+-------------+----------------------------+----------------------------+--------------+------------------------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+---------------------+---------------------+---------------------+---------------------+--------------+----------------------------+
   1 row in set

   ```

   `DBA_OB_TENANTS` 视图的详细说明，参见 [DBA_OB_TENANTS](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000820151)。
 4. 通过 `ALTER TENANT` 语句，修改租户属性。

   #### 注意

   该语句需要在系统租户下以 root 用户执行。

   语法如下：

   ```sql
   ALTER TENANT {tenant_name | all }
       [SET] [tenant_option_list] [opt_global_sys_vars_set]

   tenant_option_list:
       tenant_option [, tenant_option ...]

   tenant_option:
           COMMENT [=]'string'
           |PRIMARY_ZONE [=] zone
           |RESOURCE_POOL_LIST [=](poolname [, poolname...])
           |DEFAULT TABLEGROUP [=] {NULL | tablegroupname}
           |LOCALITY [=] 'locality description';

   opt_global_sys_vars_set:
       VARIABLES system_var_name = expr [,system_var_name = expr] ...

   ```

   参数说明：

      - `{tenant_name | all }`：指定待修改的租户，`all` 表示所有租户。
      - `PRIMARY_ZONE`：指定租户的 Primary Zone。
      - `RESOURCE_POOL_LIST`：指定资源池列表。每次仅支持添加或删除一个资源池。
      - `LOCALITY`：描述副本在 Zone 间的分布情况，如：`F@zone1,F@zone2,F@zone3` 表示 `zone1`、`zone2` 和 `zone3` 为全功能副本。该参数增加 Zone 配置时需要租户资源池的 `ZONE_LIST` 包含该 Zone。

   `ALTER TENANT` 语句的详细说明，参见 [ALTER TENANT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000820806)。

   示例：

      - 修改租户 `mq_t1` 的 Primary Zone 为 `"zone1,zone2"`，Locality 为 `"F@zone1,F@zone2,F@zone3"`。

       ```shell
       obclient [oceanbase]> ALTER TENANT mq_t1 PRIMARY_ZONE='zone1,zone2';
       Query OK, 0 rows affected

       obclient [oceanbase]> ALTER TENANT mq_t1 LOCALITY="F@zone1,F@zone2,F@zone3";
       Query OK, 0 rows affected

       ```
      - 租户的资源池每次仅支持添加或删除一个资源池。不支持直接替换租户的资源池。租户原来使用的资源池为 `mq_pool_01`，通过以下命令直接将租户的资源池替换为 `mq_pool_02` 时，系统会报错。

       ```shell
       obclient [oceanbase]> ALTER TENANT mq_t1 RESOURCE_POOL_LIST=('mq_pool_02');
       ERROR 1210 (HY000): Incorrect arguments to resource pool list

       ```
 5. 查看视图，确认租户属性修改结果。

   修改 Primary Zone 和 Locality 的命令会立即返回用户，异步生效。所以需要通过相关视图查看命令的实际生效情况：

      - 可以通过 `DBA_OB_TENANTS` 视图查看租户的 Primary Zone 信息和 Locality 属性。视图的 `PRIMARY_ZONE` 字段表示用户配置的 Primary Zone 值，`LOCALITY` 字段表示用户配置的 Locality 值，`PREVIOUS_LOCALITY` 表示修改前的 Locality 值。如果 `PREVIOUS_LOCALITY` 不为空，表示 Locality 修改尚未生效；如果 `PREVIOUS_LOCALITY` 为空，表示 Locality 修改已生效。
      - 可以通过系统租户下的 `CDB_OB_TABLE_LOCATIONS` 视图查看对应租户下表和分区的分布信息，可以通过用户租户下的 `DBA_OB_TABLE_LOCATIONS` 视图查看本租户下表和分区的分布信息。修改 Primary Zone 和 Locality 命令的最终生效会体现到这些视图中。

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