リソースプールの作成が完了した後、テナント作成時にリソースプールを割り当てることも、リソースプール一覧を変更する際に未使用のリソースプールをテナントに割り当てることもできます。
テナント作成時のリソースプールの割り当て
テナントを作成する際に、使用されていないリソースプールをテナントに割り当てることができます。SQLステートメントの例は以下のとおりです:
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1');
ここで:
- 各リソースプールは1つのテナントにのみ紐づけ可能であり、1つのテナントは複数のリソースプールを持つことができます。
- テナントがゾーン内で割り当てられる総リソース量は、Unit仕様 × Unit数です。
テナント作成の詳細については、テナントの作成を参照してください。
テナントのリソースプールリストを変更する際のリソースプールの割り当て
ALTER TENANT コマンドを使用して、未使用のリソースプールをテナントに割り当てることもできます。対応するSQL構文は以下のとおりです:
ALTER TENANT tenant_name RESOURCE_POOL_LIST [=](pool_name [, pool_name...]) ;
ステートメントの使用方法:
このステートメントは、
sysテナントの管理者のみが実行できます。RESOURCE_POOL_LISTについては、一度に1つのリソースプールの追加または削除のみをサポートします。テナントにリソースプールを追加する場合、追加するリソースプールと既存のリソースプールが配置されているZoneとの間で重複があってはなりません。
テナントのリソースリストを変更してリソースプールを追加する方法は、通常、テナントのレプリカ数を増やすシナリオで使用されます。
例の背景
クラスタには現在 z1、z2、z3 の3つのZoneしかなく、これら3つのZoneはすべて同じRegionに属しています。各Zoneには1台のOBServerノードがあります。クラスタには通常のテナント tenant1 が1つあり、現在のレプリカの配置状況は locality='F@z1,F@z2,F@z3', resource_pool_list=('pool1'); です。ビジネスニーズに基づき、テナント tenant1 のレプリカ数を3から5に増やす必要があります。つまり、テナントのLocalityを F@z1,F@z2,F@z3 から F@z1,F@z2,F@z3,F@z4,F@z5 に変更する必要があります。
例の手順
クラスタには現在
z1、z2、z3の3つのZoneしかなく、クラスタにz4、z5の2つのZoneを追加する必要があります。クラスタにZoneを追加する具体的な操作については、Zoneの追加を参照してください。
z4、z5の各Zoneに1台ずつOBServerノードを追加します。ZoneにOBServerノードを追加する具体的な操作については、ノードの追加を参照してください。
rootユーザーでsysテナントにログインし、テナントtenant1にz4、z5でリソースを追加します。リソースを追加するには、利用可能なリソースユニットとリソースプールが必要です。
obclient>CREATE RESOURCE UNIT unit2 MAX_CPU 1, MIN_CPU 1, MEMORY_SIZE '5G', MAX_IOPS 1024, MIN_IOPS 1024, IOPS_WEIGHT 0,LOG_DISK_SIZE '2G'; obclient>CREATE RESOURCE POOL pool2 unit = 'unit2', unit_num = 1, zone_list=('z4','z5');完了後、テナントに
z4、z5でリソースを追加します。obclient>ALTER TENANT tenant1 RESOURCE_POOL_LIST =('pool1', 'pool2') ;
テナントのLocalityを変更してレプリカを増やします。
Localityの変更ルールによると、テナントのレプリカ数が3から5に変わる場合、Localityを直接
F@z1,F@z2,F@z3,F@z4,F@z5に変更できます。Localityの変更ルールに関する情報については、Localityの変更を参照してください。obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4,F@z5';