説明
リソースプールがテナントに割り当てられた後、リソースプールの設定である UNIT_NUM を変更する場合は、ALTER RESOURCE TENANT ステートメントを使用する必要があります。
リソースプールの他の属性を変更する場合は、ALTER RESOURCE POOL ステートメントを使用する必要があります。ALTER RESOURCE POOL ステートメントの詳細については、ALTER RESOURCE POOLを参照してください。
使用上の制限と注意事項
ALTER RESOURCE TENANTステートメントは、テナント内のすべてのリソースプールのユニット数を変更します。ALTER RESOURCE TENANTステートメントを使用してテナントのスケーリング操作を実行する前に、そのテナントに負荷分散ポリシーを設定する必要があります。設定しない場合、スケーリングが失敗する可能性があります。テナントに負荷分散ポリシーを設定する手順と説明の詳細については、Unit Numberの調整によるテナントのスケーリングを参照してください。
権限要件
テナントのリソースプール設定を変更できるのは、sys テナントの root ユーザー(root@sys)のみです。その他のテナントでは、テナントのリソースプール設定の変更はサポートされません。
構文
ALTER RESOURCE TENANT tenant_name UNIT_NUM [=] unit_num [ DELETE UNIT_GROUP = ( unit_group_id_list ) ];
パラメータ説明
パラメータ |
説明 |
|---|---|
| tenant_name | 調整対象のリソースプールを持つテナント名。 |
| unit_num | テナント内のすべてのリソースプールのユニット数を変更します。UNIT_NUM を増やす場合、その値は対象ゾーン内のノード数以下である必要があります。 |
| unit_group_id_list | 同一構成ゾーンモードのスケールインシナリオでのみ使用されます。unit_num を減らす際に、DELETE UNIT_GROUP を使用すると指定したユニットグループを削除できます。DELETE UNIT_GROUP を指定しない場合、システムは該当する数のユニットグループをランダムに削除します。 |
例
テナント
tenant1のすべてのリソースプールのユニット数を3に変更します。obclient(root@sys)[oceanbase]> ALTER RESOURCE TENANT tenant1 UNIT_NUM = 3;同種ゾーンモードでのスケールインシナリオにおいて、テナント
tenant2のUNIT_GROUP_IDが1006のユニットグループを削除します。以下のコマンドを順番に実行して、ロードバランシングを有効にします。
obclient(root@sys)[oceanbase]> ALTER SYSTEM SET enable_rebalance = true TENANT = 'tenant2';obclient(root@sys)[oceanbase]> ALTER SYSTEM SET enable_transfer = true TENANT = 'tenant2';テナントの
TENANT_IDを取得します。obclient(root@sys)[oceanbase]> SELECT TENANT_ID,TENANT_NAME,TENANT_TYPE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'tenant2';クエリ結果は次のとおりです:
+-----------+-------------+-------------+ | TENANT_ID | TENANT_NAME | TENANT_TYPE | +-----------+-------------+-------------+ | 1006 | tenant2 | USER | +-----------+-------------+-------------+ 1 row in setテナントが保有するユニットを確認し、削除対象の
UNIT_GROUP_IDを取得します。obclient(root@sys)[oceanbase]> SELECT UNIT_ID, TENANT_ID, STATUS, RESOURCE_POOL_ID, UNIT_GROUP_ID, ZONE, SVR_IP, SVR_PORT FROM oceanbase.DBA_OB_UNITS WHERE TENANT_ID = 1006;クエリ結果は次のとおりです:
+---------+-----------+--------+------------------+---------------+-------+----------------+----------+ | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | ZONE | SVR_IP | SVR_PORT | +---------+-----------+--------+------------------+---------------+-------+----------------+----------+ | 1016 | 1006 | ACTIVE | 1003 | 1006 | zone1 | xxx.xx.xxx.194 | 2882 | | 1017 | 1006 | ACTIVE | 1003 | 1007 | zone1 | xxx.xx.xxx.198 | 2882 | | 1018 | 1006 | ACTIVE | 1003 | 1006 | zone2 | xxx.xx.xxx.192 | 2882 | | 1019 | 1006 | ACTIVE | 1003 | 1007 | zone2 | xxx.xx.xxx.196 | 2882 | | 1020 | 1006 | ACTIVE | 1003 | 1006 | zone3 | xxx.xx.xxx.204 | 2882 | | 1021 | 1006 | ACTIVE | 1003 | 1007 | zone3 | xxx.xx.xxx.197 | 2882 | +---------+-----------+--------+------------------+---------------+-------+----------------+----------+ 6 rows in set取得した
UNIT_GROUP_IDに基づいて、スケールイン操作を実行します。obclient(root@sys)[oceanbase]> ALTER RESOURCE TENANT tenant2 UNIT_NUM = 1 DELETE UNIT_GROUP = (1006);実行が成功した後、ビュー
DBA_OB_TENANT_JOBSを使用して、ユニット数削減タスクの実行状態を確認できます。obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANT_JOBS WHERE JOB_TYPE='ALTER_RESOURCE_TENANT_UNIT_NUM' AND TENANT_ID=1006;クエリ結果は次のとおりです:
+--------+--------------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+-----------------------------------------------------------------------+--------------------+----------------+-------------+ | JOB_ID | JOB_TYPE | JOB_STATUS | RESULT_CODE | PROGRESS | START_TIME | MODIFY_TIME | TENANT_ID | SQL_TEXT | EXTRA_INFO | RS_SVR_IP | RS_SVR_PORT | +--------+--------------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+-----------------------------------------------------------------------+--------------------+----------------+-------------+ | 6 | ALTER_RESOURCE_TENANT_UNIT_NUM | SUCCESS | 0 | 100 | 2023-09-25 18:01:30.069506 | 2023-09-25 18:01:45.068740 | 1006 | ALTER RESOURCE TENANT tenant2 UNIT_NUM = 2 | FROM: '1', TO: '2' | xxx.xx.xxx.196 | 2882 | | 7 | ALTER_RESOURCE_TENANT_UNIT_NUM | SUCCESS | 0 | 100 | 2023-09-26 09:37:32.367076 | 2023-09-26 09:39:05.651200 | 1006 | ALTER RESOURCE TENANT tenant2 UNIT_NUM = 1 DELETE UNIT_GROUP = (1006) | FROM: '2', TO: '1' | xxx.xx.xxx.196 | 2882 | +--------+--------------------------------+------------+-------------+----------+----------------------------+----------------------------+-----------+-----------------------------------------------------------------------+--------------------+----------------+-------------+ 2 rows in set