リソースプールのプロパティを変更するとは、リソースプールの構成パラメータである UNIT、UNIT_NUM、ZONE_LIST などの値を調整することです。本記事では、リソースプールのプロパティを変更する方法について説明します。
リソースプールのプロパティは、ALTER RESOURCE POOL ステートメントを使用して変更できます。
テナントのリソースプールのプロパティを変更することは、テナントのスケーリングアップまたはスケーリングダウンを実現する別の方法です。例えば、UNIT_NUM を増やすことで、各ゾーン内のノード数を増やし、スケールアップを実現できます。
操作手順
rootユーザーでクラスタのsysテナントにログインします。
obclient -h172.30.xx.xx -P2883 -uroot@sys#cluster -p**** -Aoceanbaseデータベースに移動します。obclient [(none)]> USE oceanbase;DBA_OB_RESOURCE_POOLSビューを使用して、リソースプールの構成情報を取得します。リソースプール
mq_pool_02の構成情報を照会する例を示します:obclient [oceanbase]> SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_02'; +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------+--------------+ | RESOURCE_POOL_ID | NAME | TENANT_ID | CREATE_TIME | MODIFY_TIME | UNIT_COUNT | UNIT_CONFIG_ID | ZONE_LIST | REPLICA_TYPE | +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------+--------------+ | 1026 | mq_pool_02 | NULL | 2023-01-10 23:54:24.177685 | 2023-01-10 23:54:24.177685 | 1 | 1020 | zone1;zone2 | FULL | +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------+--------------+ 1 row in setDBA_OB_RESOURCE_POOLSビューの詳細については、DBA_OB_RESOURCE_POOLSを参照してください。ALTER RESOURCE POOLステートメントを使用して、リソースプールの構成を変更します。注意
- 単一のステートメントでは1つのプロパティしか変更できません。
UNIT、UNIT_NUM、ZONE_LISTのうち2つ以上のプロパティを同時に変更する必要がある場合は、複数のステートメントで実行する必要があります。 ZONE_LISTを変更する際は、一度に追加または削除できるゾーンは1つのみです。
構文は以下のとおりです:
ALTER RESOURCE POOL pool_name UNIT [=] unit_name, UNIT_NUM [=] unit_num, ZONE_LIST [=] ('zone' [, 'zone' ...]);パラメータの説明:
pool_name:リソースプール名。UNIT:このリソースプールのリソース仕様。UNIT_NUM:リソースユニット数。Unit数を増やす場合、UNIT_NUMの値は各Zone内のOBServer数を超えてはなりません。注意
このリソースプールが既にテナントに割り当てられている場合、リソースプールのプロパティを変更することで変更することはできません。
ALTER RESOURCE TENANTステートメントを使用して変更する必要があります。ZONE_LIST:リソースプールのゾーンの分布。
ALTER RESOURCE POOLステートメントの詳細については、ALTER RESOURCE POOLを参照してください。ALTER RESOURCE TENANTステートメントの詳細については、ALTER RESOURCE TENANTを参照してください。例:
リソースプールがテナントに割り当てられていない場合
リソースプール
mq_pool_02のリソース仕様を'S2_unit_config'に、リソースユニット数を3に、ZONE_LISTを'zone1','zone2','zone3'に変更します。obclient [oceanbase]> ALTER RESOURCE POOL mq_pool_02 UNIT='S2_unit_config'; Query OK, 0 rows affected obclient [oceanbase]> ALTER RESOURCE POOL mq_pool_02 UNIT_NUM=3; Query OK, 0 rows affected obclient [oceanbase]> ALTER RESOURCE POOL mq_pool_02 ZONE_LIST=('zone1','zone2','zone3'); Query OK, 0 rows affectedリソースプールがテナントに割り当てられている場合
テナントのリソースプールの構成を変更する場合、UNIT_NUMは
ALTER RESOURCE TENANTステートメントを使用して変更する必要があります。リソースプール
mq_pool_02のリソース仕様を'S2_unit_config'に、リソースユニット数を3に、ZONE_LISTを'zone1','zone2','zone3'に変更します。obclient [oceanbase]> ALTER RESOURCE POOL mq_pool_02 UNIT='S2_unit_config'; Query OK, 0 rows affected obclient [oceanbase]> ALTER RESOURCE TENANT mq_t2 UNIT_NUM=3; Query OK, 0 rows affected obclient [oceanbase]> ALTER RESOURCE POOL mq_pool_02 ZONE_LIST=('zone1','zone2','zone3'); Query OK, 0 rows affected
- 単一のステートメントでは1つのプロパティしか変更できません。
DBA_OB_RESOURCE_POOLSビューを確認し、リソースプールの構成変更結果を確認します。結果は次のとおりで、
UNIT_COUNT、UNIT_CONFIG_ID、ZONE_LISTパラメータが更新されたことがわかります。obclient [oceanbase]> SELECT * FROM DBA_OB_RESOURCE_POOLS WHERE NAME = 'mq_pool_02'; +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------------+--------------+ | RESOURCE_POOL_ID | NAME | TENANT_ID | CREATE_TIME | MODIFY_TIME | UNIT_COUNT | UNIT_CONFIG_ID | ZONE_LIST | REPLICA_TYPE | +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------------+--------------+ | 1026 | mq_pool_02 | NULL | 2023-01-10 23:54:24.177685 | 2023-01-10 23:56:04.961771 | 2 | 1021 | zone1;zone2;zone3 | FULL | +------------------+------------+-----------+----------------------------+----------------------------+------------+----------------+-------------------+--------------+ 1 row in set