---
title: "ALTER TENANT - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: ALTER TENANT 描述 ALTER TENANT 语句用来修改用户租户的属性，包括修改 Locality、主 Zone、资源池列表以及系统变量值等。 如果需要修改用户租户的名称，可以使用 ALTER TENANT ... RENAME 语句。 如果需要锁定或解锁用户租户，可以使用 ALTER TENANT .…
---
切换语言

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

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

# ALTER TENANT

更新时间：2026-05-08 08:41:59

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/100.system-tenants/500.alter-tenant.md)  

## 描述

`ALTER TENANT` 语句用来修改用户租户的属性，包括修改 Locality、主 Zone、资源池列表以及系统变量值等。

如果需要修改用户租户的名称，可以使用 `ALTER TENANT ... RENAME` 语句。

如果需要锁定或解锁用户租户，可以使用 `ALTER TENANT ... LOCK / UNLOCK` 语句，使用 `ALTER TENANT ... LOCK` 语句执行锁定操作后，系统将不允许用户再在被锁定的租户上创建新的连接，已存在的连接不受影响。

## 权限要求

仅 `sys` 租户的 `root` 用户（`root@sys`）可以修改租户，其他租户不支持修改租户。

## 语法

### ALTER TENANT

```sql
ALTER TENANT tenant_name
    [SET] [tenant_option_list] [set_sys_var];

tenant_option_list:
    tenant_option [, tenant_option ...]

tenant_option:
      LOCALITY [=] 'locality_description'
    | PRIMARY_ZONE [=] zone
    | RESOURCE_POOL_LIST [=](pool_name [, pool_name...])
    | ENABLE_ARBITRATION_SERVICE [=] {True | False}
    | [DEFAULT] TABLEGROUP [=] {NULL | tablegroup_name}
    | ENABLE_EXTENDED_ROWID [=] {true | false}
    | COMMENT [=]'string'

set_sys_var:
    VARIABLES var_name {TO | =} var_value [,var_name {TO | =} var_value...]

```

### ALTER TENANT ... RENAME

```sql
ALTER TENANT tenant_name RENAME GLOBAL_NAME TO new_tenant_name;

```

### ALTER TENANT ... LOCK / UNLOCK

```sql
ALTER TENANT tenant_name LOCK | UNLOCK;

```

## 参数说明

| **参数** | **描述** |
| --- | --- |
| tenant_name | 指定要修改的租户名。 |
| LOCALITY | 修改租户的 Locality。Locality 描述了副本在 Zone 间的分布情况。当前版本支持的副本类型如下：   - 全能型副本：名称为 FULL，简称 F。有关全能型副本的详细介绍，参见 [全能型副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685947)。 - 只读型副本：名称 READONLY，简称 R。有关只读型副本的详细介绍，参见 [只读型副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685948)。 - 列存副本：名称为 COLUMNSTORE，简称 C。有关列存副本的详细介绍，参见 [列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685950)。     示例：`LOCALITY = 'F@z1,F@z2,F@z3'`、`LOCALITY = 'F@z1,R@z2,C@z3'`   修改该参数时，如果需要增加 Zone，则需要租户资源池的 `ZONE_LIST` 中包含该 Zone。 |
| PRIMARY_ZONE | 修改租户的 Primary Zone。主要支持以下取值：   - `RANDOM`：指定租户的 Primary Zone 为租户所在的所有 Zone，表示租户所在的所有 Zone 具有相同的优先级。 - zone_name：指定租户的 Primary Zone 为具体的某个 Zone。     如果创建租户时未指定 Primary Zone，则默认取值为 `RANDOM`。 |
| RESOURCE_POOL_LIST | 修改租户的资源池列表。   如果有多个资源池，要求多个资源池的 `UNIT_NUM` 个数一致。   #### 注意    - 同一个租户的多个资源池，其对应的 `ZONE_LIST` 相互之间不允许有交集。 - 修改资源池列表时，每次仅支持增加或减少一个资源池。 |
| ENABLE_ARBITRATION_SERVICE | 部署了仲裁服务的场景下，修改租户仲裁服务的开启状态。 |
| [DEFAULT] TABLEGROUP | 修改租户的默认表组信息。 `NULL` 表示取消默认表组。 |
| ENABLE_EXTENDED_ROWID | 指定是否为租户内所有表开启 Extended ROWID 模式。该参数一旦设置为开启后不允许关闭。但是您可以通过租户级配置项 `default_enable_extended_rowid` 为后续新建表设置是否开启 Extended ROWID 模式。有关租户级配置项 `default_enable_extended_rowid` 的更多介绍，请参见 [default_enable_extended_rowid](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685416)。 |
| system_var_name | 修改租户的系统变量值。 |
| RENAME GLOBAL_NAME TO | 修改租户名称。 |
| COMMENT | 修改注释。 |

## 示例

- 修改租户 `tenant1` 的 Primary Zone 为 `zone2`。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 primary_zone='zone2';

  ```
 - 修改租户 `tenant1` 的 Primary Zone 为 `RANDOM`。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 primary_zone = RANDOM;

  ```

  假设该租户有 `zone1`、`zone2`、`zone3` 三个 Zone，则该语句等价于

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 primary_zone = 'zon1,zone2,zone3';

  ```
 - 修改资源池通常用于租户副本数升级和降级的场景中，并且修改资源池时，每次只能添加或删除一个资源池，不能执行以下语句直接将租户的资源池 `pool1` 替换为 `pool2`，否则将出现以下错误。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool2');

  ```

  报错信息如下：

  ```shell
  ERROR 1210 (HY000): Incorrect arguments to resource pool list

  ```

  如果您是希望调整租户的可用资源，例如，需要对租户进行扩容，可以调大资源单元的规格。

  ```shell
  obclient [oceanbase]> ALTER RESOURCE UNIT unit1 MAX_CPU 15, MEMORY_SIZE '20G', MAX_IOPS 1280, MIN_CPU=10, MIN_IOPS=1024;

  ```
 - 修改租户 `tenant1` 的 Locality，增加副本数。其中 `F` 表示副本类型为全功能型副本，`B_4` 为新增的 Zone 名称。

  假设当前租户 `tenant1` 的 Locality 为 `F@B_1,F@B_2,F@B_3`，资源池为 `pool1`，并且其 `ZONE_LIST` 范围为 `'B_1','B_2','B_3'`。

     1. 创建资源单元 `unit2`。

       ```shell
       obclient [oceanbase]> CREATE RESOURCE UNIT unit2, MAX_CPU=5, MIN_CPU=2.5, MEMORY_SIZE= '32G', MAX_IOPS=10000, MIN_IOPS=5000, LOG_DISK_SIZE=5301023539200;

       ```
     2. 创建资源池 `pool2`。

       ```shell
       obclient [oceanbase]> CREATE RESOURCE POOL pool2 unit='unit2',unit_num=1,zone_list=('B_4');

       ```
     3. 为租户添加资源池 `pool2`。

       ```shell
       obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool1','pool2');

       ```
     4. 修改租户的 Locality。

       ```shell
       obclient [oceanbase]> ALTER TENANT tenant1 LOCALITY='F@B_1,F@B_2,F@B_3,F@B_4';

       ```

       如果待增加的副本类型为列存副本，修改租户的 Locality 的语句如下：

       ```shell
       obclient [oceanbase]> ALTER TENANT tenant1 LOCALITY = 'F@B_1,F@B_2,F@B_3,C@B_4';

       ```

       #### 注意

            - 修改租户的 Locality 时，对于列存副本，仅支持加减副本操作，不支持副本类型转换。即如果需要增加列存副本，则要求原 Zone 上无副本；如果需要减少列存副本，只能将列存副本所在的 Zone 改为无副本。
            - 在租户中增加列存副本后，如果要访问列存副本，需要额外部署 ODP，并进行一系列配置才能将连接路由到列存副本，有关列存副本的详细使用说明，参见 [列存副本](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685950)。
 - 部署了仲裁服务的场景下，为 `tenant1` 开启仲裁服务。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 ENABLE_ARBITRATION_SERVICE=true;

  ```
 - 将普通租户 `tenant1` 的名称重命名为 `tenant101`。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 RENAME GLOBAL_NAME TO tenant101;

  ```
 - 锁定租户 `tenant1`。

  ```shell
  obclient [oceanbase]> ALTER TENANT tenant1 LOCK;

  ```

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