暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

OceanBase SQL语句ALTER RESOURCE TENANT和ALTER RESOURCE POOL

2024-03-26
224

ALTER RESOURCE TENANT

描述

该语句用来修改租户资源池的配置。

语法

ALTER RESOURCE TENANT tenant_name UNIT_NUM [=] unit_num; 

参数解释

参数描述
tenant_name修改配置的租户名称。
UNIT_NUM [=] unitnum修改租户下所有资源池的 Unit 个数。取值要小于等于对应 Zone 中的 OBServer 个数。

示例

修改租户 tenant1 下所有资源池的 unit_num 个数为 3。

obclient> ALTER RESOURCE TENANT tenant1 UNITNUM = 3;
Query OK, 0 rows affected 


ALTER RESOURCE POOL

描述

该语句用于修改资源池。

语法

ALTER RESOURCE POOL { 
    pool_name 
    UNIT [=] unit_name, 
    UNIT_NUM [=] unit_num [DELETE UNIT = (unit_id_list)], 
    ZONE_LIST [=] ('zone' [, 'zone' ...])
 | MERGE 
   ('pool_name'[, 'pool_name' ...]) 
    INTO ('merge_pool_name')
 | SPLIT INTO ('pool_name' [, 'pool_name' ...])
   ON ('zone' [, 'zone' ...])
};

参数解释

参数描述
unit_name指定要使用的资源单元配置的名称。
unit_num指定修改后一个 Zone 下的 Unit 个数,取值要小于等于对应 Zone 中的 OBServer 个数。
注意
当资源池分配给租户之后,无法再通过 ALTER RESOURCE POOL 语法修改资源池 Unit 个数,需要通过 ALTER RESOURCE TENANT 语法,使用方法,参见 ALTER RESOURCE TENANT
unit_id_list减小 unit_num 时,使用 DELETE UNIT 可以明确指定本次缩容即将删除的 Unit。 不指定 DELETE UNIT 时,系统将自动选择 Unit 进行删除。
注意 使用 DELETE UNIT 明确指定删除的 unit_id 时需要还需要满足以下条件:
  • 删除的 unit_id 列表中,每个 Zone 内删除的 Unit 的数量必须相等,目前认为删除列表中各 Zone 的 Unit 数量不相同的缩容操作非法。
  • 删除的 unit_id 列表中,每个 Zone 内删除的 Unit 的数量和 unit_num 的数量需要匹配。
ZONE_LIST [=] ('zone' [, 'zone' ...])指定资源池的 Zone 列表。
MERGE合并多个资源池。 合并资源池时,不影响资源池被租户使用,只是在 RootService的管理层看来是多个资源池合并为一个资源池,方便统一维护。
SPLIT将资源池分裂为几个资源池。
merge_pool_name合并后的资源池名称。

示例

  • 不能同时修改资源池 pool1 的多个属性,例如以下语句同时修改了 UNITUNIT_NUM 与 ZONE 属性,执行将报错。

    obclient> ALTER RESOURCE POOL pool1 UNIT='unit2', UNIT_NUM=1, ZONE_LIST=('zone1');
    ERROR 1235 (0A000): alter unit_num, resource_unit, zone_list in one cmd not supported
    

    特别地,在减小 UNIT_NUM 时,可以指定删除具体的 Unit。

    obclient> ALTER RESOURCE POOL pool1 UNIT_NUM=1 DELETE UNIT = (1002);
    Query OK, 0 rows affected
    
  • 修改资源池 pool1 的 UNIT 属性。

    obclient> ALTER RESOURCE POOL pool1 UNIT='unit2';
    Query OK, 0 rows affected
    
  • 将资源池 pool1 分裂成 pool10 和 pool11

    obclient> CREATE RESOURCE POOL pool1 unit='unit1',unit_num=1,zone_list=('zone1','zone2');
    Query OK, 0 rows affected
    
    
    obclient> ALTER RESOURCE POOL pool1 SPLIT INTO ('pool10','pool11') ON ('zone1','zone2');
    Query OK, 0 rows affected
    
  • 假设 tenant1 租户使用了三个资源池,分别为 pool0pool1 与 pool2 ,现将三个资源池合并统一管理。

    obclient>ALTER RESOURCE POOL MERGE ('pool0','pool1','pool2') INTO ('pool3');
    Query OK, 0 rows affected
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论