OceanBase学习之路25|查看与修改租户的资源配置

您可以根据需要,查看租户的资源配置,包括资源池中资源单元个数和资源单元的具体配置。

通过 SQL 语句查看租户的资源配置

  1. 使用  root 用户登录数据库的  sys 租户。

  2. 进入 oceanbase 数据库。

    obclient> USE oceanbase;
  3. 执行以下语句,可以查看集群内某个租户所使用的资源信息。

    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 维度的使用范围

该方式通常出现在租户副本数升级的场景中。

示例背景

假设集群中当前仅有  z1z2z3 三个 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',以便提高租户的可用性。

操作步骤

  1. 使用  root 用户登录到数据库的  sys 租户。

  2. 集群中当前仅  z1z2z3 三个 Zone,需要在集群中增加  z4z5 两个 Zone。

    在集群中增加 Zone 的具体操作请参见  增加或删除 Zone

  3. 在  z4z5 两个 Zone 上各添加一台 OBServer。

    向 Zone 内添加 OBServer 的具体操作请参见  添加 OBServer

  4. 将资源池  pool1 中  ZONE_LIST 的范围扩大到  'z1','z2','z3','z4'

    obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');
  5. 为租户  tenant1 在  z4 上增加数据副本。

    obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4';
  6. 将资源池  pool1 中  ZONE_LIST 的范围扩大到  'z1','z2','z3','z4','z5'

    obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4','z5');
  7. 为租户  tenant1 在  z5 上增加数据副本。

    obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4,F@z5';

缩小 Zone 维度的使用范围

示例背景

假设当前集群中包含 5 个可用区  z1z2z3z4z5,且 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',减少租户存储资源使用量。

操作步骤

  1. 使用  root 用户登录到数据库的  sys 租户。

  2. 删除租户在  z5 上的数据副本。

    obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4';
  3. 将资源池  ZONE_LIST 的范围缩小到  'z1','z2','z3','z4'

    obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3','z4');
  4. 删除租户在  z4 上的数据副本。

    obclient> ALTER TENANT tenant1 locality='F@z1,F@z2,F@z3';
  5. 将资源池  ZONE_LIST 的范围缩小到  'z1','z2','z3'

    obclient> ALTER RESOURCE POOL pool1 ZONE_LIST=('z1','z2','z3');
  6. 执行以下语句,从集群中删除 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;

    结束后,本次操作完成。


请使用浏览器的分享功能分享到微信等