OB-资源管理(Resource Unit/Pool)

管理资源单元(Resource Unit)

创建资源单元

语法
CREATE RESOURCE UNIT unitname 
    MAX_CPU [=] cpunum, 
    MAX_MEMORY [=] memsize, 
    MAX_IOPS [=] iopsnum, 
    MAX_DISK_SIZE [=] disksize, 
    MAX_SESSION_NUM [=] sessionnum, 
    [MIN_CPU [=] cpunum,]
    [MIN_MEMORY [=] memsize,] 
    [MIN_IOPS [=] iopsnum] ;
参数说明
  • 必须指定 CPU、Memory、IOPS、Disk Size 和 Session Num 的大小

  • 参数值设置:可以使用纯数字不带引号的方式,也可以使用带单位加引号的方式

    • max_memory='10G' 等效于 max_memory=10737418240
  • MAX_MEMORY 的取值范围为 [1073741824,+∞),单位为字节,即最小值为 1 G。

  • MAX_IOPS 的取值范围为 [128,+∞)。

  • MAX_DISK_SIZE 的取值范围为 [536870912,+∞],单位为字节,即最小值为 512 M。

  • MAX_SESSION_NUM 的取值范围为 [64,+∞)。

示例
CREATE RESOURCE UNIT unit1 MAX_CPU 1, MAX_MEMORY '1G', MAX_IOPS 128,MAX_DISK_SIZE '10G', MAX_SESSION_NUM 64, MIN_CPU=1, MIN_MEMORY='1G', MIN_IOPS=128;
-- 等效
CREATE RESOURCE UNIT unit1 MAX_CPU 1, MAX_MEMORY 1073741824, MAX_IOPS 128, MAX_DISK_SIZE 10737418240, MAX_SESSION_NUM 64, MIN_CPU=1, MIN_MEMORY=1073741824, MIN_IOPS=128;

资源单元 unit1 创建后,可以创建资源池 pool1pool2 并且 pool1pool2 均使用 unit1 资源单元的配置。

查看资源单元

通过内部表查看
SELECT * FROM __all_unit_config;

修改资源单元

动态调整租户的资源单元大小

ALTER RESOURCE UNIT unit1  MAX_CPU 5, MAX_MEMORY 1288490188, MAX_IOPS 128,max_disk_size 8589934592, MAX_SESSION_NUM 64, MIN_CPU=2, MIN_MEMORY 1073741824, MIN_IOPS=128;

image-20210830093823473

删除资源单元

删除资源单元前必须确保当前资源单元未被使用。如果资源单元正在被使用,则需要先将资源单元从资源池中移除后再删除资源单元。

DROP RESOURCE UNIT unitname;
当资源单元被使用时,不可删除

image-20210830093146904

删除资源单元

image-20210830093321675

资源池管理(Resource Pool)

创建资源池

在创建新租户时,如果当前的资源池均被使用(被其他租户使用),需要创建新的资源池。

语法
CREATE RESOURCE POOL poolname 
UNIT [=] unitname, 
UNIT_NUM [=] unitnum, 
ZONE_LIST [=] ('zone' [, 'zone' ...]);
  • 参数 unit_num 表示在集群的一个 Zone 里面包含的资源单元个数。该值小于等于一个 Zone 中的 OBServer 的个数。
  • 参数 zone_list 表示资源池的 Zone 列表,显示该资源池的资源在哪些 Zone 中被使用。
示例
CREATE RESOURCE POOL pool1 unit='unit1', unit_num=1, zone_list=('zone1','zone2','zone3');

查看资源配置

SELECT * FROM oceanbase.gv$unit;

image-20210830093924996

修改资源池

语法
ALTER RESOURCE POOL poolname 
    UNIT [=] unitname, 
    UNIT_NUM [=] unitnum, 
    ZONE_LIST [=] ('zone'[, 'zone' ...]);
说明
  • 修改资源池的命令每次仅支持修改一个参数值。
  • 被修改的资源池必须是没有被使用的或者不包含任何资源单元的空的资源池。
  • 新创建的资源池不能更改 zone_list
示例

修改资源池 pool1 的资源单元,修改后 unit2 替代 unit1 属于资源池pool1

ALTER RESOURCE POOL pool1 unit='unit2'

删除资源池

DROP RESOURCE POOL poolname;

image-20210830093230125

原文地址:https://www.cnblogs.com/binliubiao/p/15204571.html