首批通过分布式安全可靠测评,为关键业务系统打造
ALTER TENANT
更新时间:2026-04-10 11:58:01
描述
ALTER TENANT 语句用来修改用户租户的属性,包括修改 Locality、主 Zone、资源池列表以及系统变量值等。
如果需要修改用户租户的名称,可以使用 ALTER TENANT ... RENAME 语句。
如果需要锁定或解锁用户租户,可以使用 ALTER TENANT ... LOCK / UNLOCK 语句,使用 ALTER TENANT ... LOCK 语句执行锁定操作后,系统将不允许用户再在被锁定的租户上创建新的连接,已存在的连接不受影响。
权限要求
仅 sys 租户的 root 用户(root@sys)可以修改租户,其他租户不支持修改租户。
语法
ALTER TENANT
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
ALTER TENANT tenant_name RENAME GLOBAL_NAME TO new_tenant_name;
ALTER TENANT ... LOCK / UNLOCK
ALTER TENANT tenant_name LOCK | UNLOCK;
参数说明
| 参数 | 描述 |
|---|---|
| tenant_name | 指定要修改的租户名。 |
| LOCALITY | 修改租户的 Locality。Locality 描述副本在 Zone 间的分布情况,如:F@z1,F@z2,F@z3 表示 z1、z2 和 z3 为全功能副本。修改该参数时,如果需要增加 Zone,则需要租户资源池的 ZONE_LIST 中包含该 Zone。 |
| PRIMARY_ZONE | 修改租户的 Primary Zone。主要支持以下取值:
如果创建租户时未指定 Primary Zone,则默认取值为 RANDOM。 |
| RESOURCE_POOL_LIST | 修改租户的资源池列表。 如果有多个资源池,要求多个资源池的 UNIT_NUM 个数一致。
注意
|
| 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。 |
| system_var_name | 修改租户的系统变量值。 |
| RENAME GLOBAL_NAME TO | 修改租户名称。 |
| COMMENT | 修改注释。 |
示例
修改租户
tenant1的 Primary Zone 为zone2。obclient [oceanbase]> ALTER TENANT tenant1 primary_zone='zone2';修改资源池通常用于租户副本数升级和降级的场景中,并且修改资源池时,每次只能添加或删除一个资源池,不能执行以下语句直接将租户的资源池
pool1替换为pool2,否则将出现以下错误。obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool2');报错信息如下:
ERROR 1210 (HY000): Incorrect arguments to resource pool list如果您是希望调整租户的可用资源,例如,需要对租户进行扩容,可以调大资源单元的规格。
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 名称。创建资源单元
unit2。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;创建资源池
pool2。obclient [oceanbase]> CREATE RESOURCE POOL pool2 unit='unit2',unit_num=1,zone_list=('B_4');为租户添加资源池
pool2。obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool1','pool2');修改租户的 Locality。
obclient [oceanbase]> ALTER TENANT tenant1 locality="F@B_1,F@B_2,F@B_3,F@B_4";
部署了仲裁服务的场景下,为
tenant1开启仲裁服务。obclient [oceanbase]> ALTER TENANT tenant1 ENABLE_ARBITRATION_SERVICE=true;将普通租户
tenant1的名称重命名为tenant101。obclient [oceanbase]> ALTER TENANT tenant1 RENAME GLOBAL_NAME TO tenant101;锁定租户
tenant1。obclient [oceanbase]> ALTER TENANT tenant1 LOCK;