您可以根据需要,查看租户的资源配置,包括资源池中资源单元个数和资源单元的具体配置。
使用
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_LIST 可以调整资源池在 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';
示例背景
假设当前集群中包含 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;
结束后,本次操作完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932816/ ,如需转载,请注明出处,否则将追究法律责任。