説明
ALTER RESOURCE POOL ステートメントは、リソースプールの属性を変更するために使用されます。これには、UNIT、UNIT_NUM、ZONE_LIST の変更が含まれます。
使用制限と注意事項
ALTER RESOURCE POOLステートメントでリソースプールの属性を変更する場合、1文につき1つの属性のみを変更できます。UNIT、UNIT_NUM、ZONE_LISTのうち2つ以上を同時に変更する必要がある場合は、複数のステートメントに分けて実行する必要があります。OceanBaseデータベースの現在のバージョンでは、テナントの同種ゾーンモードと異種ゾーンモードをサポートしています。同種ゾーンモードでは、テナント内の各ゾーンのユニット数が同じである必要があります。異種ゾーンモードでは、テナント内の各ゾーンのユニット数は異なっても構いませんが、1つのテナントで最大2種類の
unit_numしか持てません。UNIT_NUMを増減する際:異種ゾーンモードでは、リソースプールが既にテナントに割り当てられているかどうかに関係なく、
ALTER RESOURCE POOLステートメントを使用してUNIT_NUMを増減できます。注意
通常、既存のテナントやアップグレードされたテナントは、デフォルトで同種ゾーンモードになっています。異種ゾーンモードを有効にするには、構成パラメータ
zone_deploy_modeの値をhetero(異種ゾーンモード)に変更する必要があります。変更後は、homo(同種ゾーンモード)に戻すことはできません。同種ゾーンモードでは、リソースプールが既にテナントに割り当てられている場合、
ALTER RESOURCE POOLステートメントは使用できません。変更にはALTER RESOURCE TENANTステートメントを使用する必要があります。ALTER RESOURCE TENANTステートメントの詳細については、ALTER RESOURCE TENANTを参照してください。
権限要件
リソースプールを変更できるのは sys テナントの root ユーザー(root@sys)のみです。他のテナントではリソースプールの変更はサポートされません。
構文
ALTER RESOURCE POOL
ALTER RESOURCE POOL pool_name
UNIT [=] unit_name
| UNIT_NUM [=] unit_num [DELETE UNIT = (unit_id_list)]
| ZONE_LIST [=] ('zone_name' [, 'zone_name' ...]);
パラメータ説明
パラメータ |
説明 |
|---|---|
| unit_name | リソースプールで使用するリソース構成名を変更します。 |
| unit_num | 変更後の単一ゾーン内のユニット数を指定します。unit_num を増やす場合、その値は対象ゾーン内ノード数以下である必要があります。 <main id="notice" type=notice'>注意異種ゾーンモードでは、 例えば、あるテナントが3つのリソースプール |
| DELETE UNIT | unit_num を減らす際、DELETE UNIT を使用すると指定したユニットを削除できます。DELETE UNIT を指定しない場合、システムは該当数のユニットをランダムに削除します。 <main id="notice" type=notice'>注意
|
| ZONE_LIST | 変更後のリソースプールのゾーンリストを指定します。 |
例
リソースプール
pool1の複数のプロパティを同時に変更することはできません。例えば、次のステートメントではUNIT、UNIT_NUM、ZONEプロパティを同時に変更しているため、実行時にエラーが発生します。obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT='unit2', UNIT_NUM=1, ZONE_LIST=('zone1'); ERROR 1235 (0A000): alter unit_num, resource_unit, zone_list in one cmd not supported特に、
UNIT_NUMを減らす場合は、指定したユニットを削除できます。obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT_NUM=1 DELETE UNIT = (1002);リソースプール
pool1が使用するリソース仕様をunit2に変更します。obclient [oceanbase]> ALTER RESOURCE POOL pool1 UNIT='unit2';