欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
租户资源的水平管理主要是通过调整资源池的 UNIT_NUM 来动态调整租户的可用资源。具体表现为,您可以通过调整资源池的 UNIT_NUM 来调整资源池下每个 Zone 内 Unit 数量,进而提高或降低该租户在对应 Zone 上的服务能力。OceanBase 数据库 V4.0 版本后,不再支持租户的多个 Resource Pool 的 Unit 数目异构。
UNIT_NUM 的变更也分为两类,即调大 UNIT_NUM 和调小 UNIT_NUM:
对于未授予租户的 Resource Pool,可以单独调小或调大 Resource Pool 的
UNIT_NUM。对于已授予租户的 Resource Pool,只能同时调整所有已授予租户的 Resource Pool 的
UNIT_NUM,无法单独调整。此外,V4.0 暂不支持调小相关 Resource Pool 的UNIT_NUM。
调整资源池 UNIT_NUM 的示例语句如下:
obclient> CREATE RESOURCE POOL rp1 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2');
1. resource pool 没有与租户绑定时调整 resource pool unit_num:
obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 3; // 调大 UNIT_NUM
obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 2; // 调小 UNIT_NUM
obclient> ALTER RESOURCE POOL rp1 UNIT_NUM 1 DELETE UNIT = (1001, 1003); // 指定资源单元调小 UNIT_NUM
2. resource pool 与租户绑定时调整租户 unit_num:
obclient> CREATE RESOURCE POOL rp2 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2');
obclient> CREATE RESOURCE POOL rp3 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone3');
obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('rp2', 'rp3') ...;
obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 3; // 同时调大两个resource pool的 UNIT_NUM
调大 UNIT_NUM
UNIT_NUM 调大示例 1:
创建 Resource Pool 后,在未授予租户时,可以单独调大单个 Resource Pool 的 UNIT_NUM。
obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2', 'zone3');
obclient> ALTER RESOURCE POOL r_p0 UNIT_NUM 3;
UNIT_NUM 调大示例 2:
调大 UNIT_NUM 通常出现在租户扩容的场景中,例如,对于已授予租户的 Resource Pool:
obclient> CREATE RESOURCE POOL r_p0 UNIT 'uc1', UNIT_NUM 2, ZONE_LIST ('zone1', 'zone2', 'zone3');
obclient> CREATE TENANT tt RESOURCE_POOL_LIST = ('r_p0');
示例中,租户 tt 使用资源池 r_p0。在 zone1、zone2、zone3 每个 Zone 上分别有 2 个 Unit,随着业务量的不断变大,每个 Zone 上 2 个 Unit 无法承载当前的业务量,因此需要考虑调大 UNIT_NUM 来提高租户的服务能力,以满足新的业务需求。
您可以使用以下语句将租户在资源池 r_p0 的 Unit 数量调整为 3,进而提高租户的服务能力。
obclient> ALTER RESOURCE TENANT tt UNIT_NUM = 3;欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/




