您可以使用 ALTER TENANT 语句将资源池从租户中移除。
从租户中移除资源池
从租户中移除资源池的 SQL 语法如下:
ALTER TENANT tenant_name RESOURCE_POOL_LIST [=](pool_name [, pool_name...]) ;
语句使用说明:
该语句仅支持由
sys租户的管理员执行。对于
RESOURCE_POOL_LIST,一次仅支持删除一个资源池。
从租户中移除资源池的场景通常使用在租户副本数降级的场景中。
示例背景
假设集群中当前有 z1、z2、z3、z4、z5 共 5 个 Zone,且 5 个 Zone 都属于同一个 Region,每个 Zone 内一台 OBServer。集群中有一个普通租户 tenant1,当前副本分布情况 locality='F@z1,F@z2,F@z3,F@z4,F@z5', resource_pool_list=('pool1','pool2'),资源池的资源分布情况 CREATE RESOURCE POOL pool1 UNIT 'uc1', UNIT_NUM 1, ZONE_LIST ('z1', 'z2', 'z3') 和 CREATE RESOURCE POOL pool2 UNIT 'uc2', UNIT_NUM 1, ZONE_LIST ('z4', 'z5')。
根据业务需要,需要将租户 tenant1 由 5 副本调整为 3 副本,且资源池调整为 1 个,即租户的 Locality 变成 locality='F@z1,F@z2,F@z3,', resource_pool_list=('pool1')。
示例操作
使用
root用户登录数据库的sys租户。通过修改租户
tenant1的 Locality 来删除副本。根据 Locality 的变更规则,每次只能删除一个 Zone 内的 Locality,Locality 的变更规则相关信息请参见 Locality 概述。
obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4'; obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3';删除
z4、z5上的资源池pool2。obclient>ALTER TENANT tenant1 RESOURCE_POOL_LIST =('pool1') ;




