您可以根据需要,查看租户的资源配置,包括资源池中资源单元个数和资源单元的具体配置。
通过 SQL 语句查看租户的资源配置
使用
root用户登录数据库的sys租户。进入 oceanbase 数据库。
obclient> USE oceanbase;执行以下语句,可以查看集群内某个租户所使用的资源信息。
obclient> SELECT * FROM oceanbase.GV$OB_UNITS WHERE tenant_id='1002'\G *************************** 1. row *************************** SVR_IP: xx.xx.xx.xx SVR_PORT: 2882 UNIT_ID: 1001 TENANT_ID: 1002 ZONE: zone1 MAX_CPU: 1 MIN_CPU: 1 MEMORY_SIZE: 5798205850 MAX_IOPS: 10000 MIN_IOPS: 10000 IOPS_WEIGHT: 1 LOG_DISK_SIZE: 17394617549 LOG_DISK_IN_USE: 156484869 DATA_DISK_IN_USE: 121634816 STATUS: NORMAL CREATE_TIME: 2022-07-19 13:48:36.308843 1 row in set更多
oceanbase.GV$OB_UNITS视图的字段及说明信息请参见 GV$OB_UNITS。
在数据库的运行过程中,您可能需要根据业务情况及时调整租户的资源配置。
租户资源配置的修改主要分为以下几种方式:
修改租户资源池的资源单元配置,即扩大或缩小资源单元的配置
修改租户资源池的资源单元个数,即增加或减少资源单元个数
修改租户资源池在 Zone 维度的分布范围,即扩大或缩小租户数据在 Zone 维度的服务范围
修改租户资源池的单元配置
修改租户资源池的单元配置与租户的扩容、缩容操作一致,具体操作请参见 通过修改 unit_config。
修改租户资源池的资源单元个数
修改租户资源池的资源的单元个数与租户的扩容缩容操作一致,具体操作请参见 通过修改 UNIT_NUM。
修改租户资源池在 Zone 维度的分布范围
通过调整资源池的 ZONE_LIST 可以调整资源池在 Zone 维度的使用范围,从而调整租户数据在 Zone 维度的服务范围。
扩大 Zone 维度的使用范围
该方式通常出现在租户副本数升级的场景中。
示例背景
假设集群中当前仅有 z1、z2、z3 三个 Zone,且三个 Zone 都属于同一个 Region,每个 Zone 内 2 台 OBServer。集群中有一个普通租户 tenant1,当前副本分布情况 locality='F@z1,F@z2,F@z3', resource_pool_list=('pool1');。
租户的具体创建信息如下:
obclient> CREATE RESOURCE POOL pool1 UNIT 'unit1', UNIT_NUM 1, ZONE_LIST ('z1', 'z2', 'z3');
obclient> CREATE TENANT tenant1 RESOURCE_POOL_LIST = ('pool1');
根据业务需要,需要将租户 tenant1 由 3 副本调整为 5 副本,租户的数据范围从 'z1', 'z2', 'z3' 扩大到 'z1','z2','z3','z4','z5',以便提高租户的可用性。
操作步骤
使用
root用户登录到数据库的sys租户。集群中当前仅
z1、z2、z3三个 Zone,需要在集群中增加z4、z5两个 Zone。在集群中增加 Zone 的具体操作请参见 增加或删除 Zone。
在
z4、z5两个 Zone 上各添加一台 OBServer。向 Zone 内添加 OBServer 的具体操作请参见 添加 OBServer。
将资源池
pool1中ZONE_LIST的范围扩大到'z1','z2','z3','z4'。obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');为租户
tenant1在z4上增加数据副本。obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4';将资源池
pool1中ZONE_LIST的范围扩大到'z1','z2','z3','z4','z5'。obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4','z5');为租户
tenant1在z5上增加数据副本。obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4,F@z5';
缩小 Zone 维度的使用范围
示例背景
假设当前集群中包含 5 个可用区 z1、z2、z3、z4、z5,且 5 个 Zone 都属于同一个 Region,每个 Zone 内 1 台 OBServer。集群中有一个普通租户 tenant1,当前副本分布情况 locality='F@z1,F@z2,F@z3,F@z4,F@z5', resource_pool_list=('pool1')。
该租户的具体创建信息如下:
obclient> CREATE RESOURCE POOL pool1 UNIT 'unit1', UNIT_NUM 1, ZONE_LIST ('z1','z2','z3','z4','z5');
obclient> CREATE TENANT tenant1 RESOURCE_POOL_LIST = ('pool1');
根据业务需要,需要将租户 tenant1 由 5 副本降为 3 副本,租户的数据范围从 'z1','z2','z3','z4','z5' 缩小到 'z1','z2','z3',减少租户存储资源使用量。
操作步骤
使用
root用户登录到数据库的sys租户。删除租户在
z5上的数据副本。obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4';将资源池
ZONE_LIST的范围缩小到'z1','z2','z3','z4'。obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');删除租户在
z4上的数据副本。obclient> ALTER TENANT tenant1 locality='F@z1,F@z2,F@z3';将资源池
ZONE_LIST的范围缩小到'z1','z2','z3'。obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3');执行以下语句,从集群中删除 Zone 及 Zone 中的 OBServer。
obclient> ALTER SYSTEM DELETE SERVER 'xxx.xxx.x.xx4:2882'; obclient> ALTER SYSTEM DELETE ZONE z4; obclient> ALTER SYSTEM DELETE SERVER 'xxx.xxx.x.xx5:2882'; obclient> ALTER SYSTEM DELETE ZONE z5;删除后,可以执行以下语句,确认列表中已查询不到这些 Zone 和 OBServer 则表示删除成功。
obclient> SELECT * FROM oceanbase.__all_zone; obclient> SELECT * FROM oceanbase.__all_server;结束后,本次操作完成。




