説明
ALTER TENANT 文は、ユーザーテナントの属性を変更するために使用されます。これには、ローカリティ、プライマリゾーン、リソースプールのリスト、システム変数の値などの変更が含まれます。
ユーザーテナント名を変更する必要がある場合は、ALTER TENANT ... RENAME 文を使用できます。
ユーザーテナントをロックまたはアンロックする必要がある場合は、ALTER TENANT ... LOCK / UNLOCK 文を使用できます。ALTER TENANT ... LOCK 文でロック操作を実行すると、システムはロックされたテナント上で新しい接続の作成を許可しなくなりますが、既存の接続は影響を受けません。
権限要件
テナントを変更できるのは sys テナントの root ユーザー(root@sys)のみです。その他のテナントではテナントの変更はサポートされません。
構文
ALTER TENANT
ALTER TENANT tenant_name
[SET] [tenant_option_list] [set_sys_var];
tenant_option_list:
tenant_option [, tenant_option ...]
tenant_option:
LOCALITY [=] 'locality_description'
| PRIMARY_ZONE [=] zone
| RESOURCE_POOL_LIST [=](pool_name [, pool_name...])
| ENABLE_ARBITRATION_SERVICE [=] {True | False}
| [DEFAULT] TABLEGROUP [=] {NULL | tablegroup_name}
| ENABLE_EXTENDED_ROWID [=] {true | false}
| COMMENT [=]'string'
set_sys_var:
VARIABLES var_name {TO | =} var_value [,var_name {TO | =} var_value...]
ALTER TENANT ... RENAME
ALTER TENANT tenant_name RENAME GLOBAL_NAME TO new_tenant_name;
ALTER TENANT ... LOCK / UNLOCK
ALTER TENANT tenant_name LOCK | UNLOCK;
パラメータ説明
パラメータ |
説明 |
|---|---|
| tenant_name | 変更するテナント名を指定します。 |
| LOCALITY | テナントのローカリティを変更します。ローカリティはゾーン間でのレプリカの分散状況を示します。現在のバージョンでサポートされているレプリカタイプは以下のとおりです:
例: LOCALITY = 'F@z1,F@z2,F@z3'、LOCALITY = 'F@z1,R@z2,C@z3'このパラメータを変更する際、ゾーンを追加する必要がある場合は、テナントのリソースプールの ZONE_LIST にそのゾーンが含まれている必要があります。 |
| PRIMARY_ZONE | テナントのプライマリゾーンを変更します。主なサポートされている値は以下のとおりです:
テナント作成時にプライマリゾーンが指定されていない場合、デフォルト値は RANDOM です。 |
| RESOURCE_POOL_LIST | テナントのリソースプールリストを変更します。 複数のリソースプールがある場合、すべてのリソースプールの UNIT_NUM が一致している必要があります。
注意
|
| ENABLE_ARBITRATION_SERVICE | アービトレーションサービスがデプロイされているシナリオで、テナントのアービトレーションサービスの起動状態を変更します。 |
| [DEFAULT] TABLEGROUP | テナントのデフォルトテーブルグループ情報を変更します。 NULL はデフォルトテーブルグループを無効にすることを意味します。 |
| ENABLE_EXTENDED_ROWID | テナント内のすべてのテーブルでExtended ROWIDモードを有効にするかどうかを指定します。このパラメータは一度有効に設定すると無効にすることはできません。ただし、テナントレベル構成パラメータ default_enable_extended_rowid を使用して、以降に新規作成されるテーブルに対してExtended ROWIDモードを有効にするかどうかを設定できます。テナントレベル構成パラメータ default_enable_extended_rowid の詳細については、default_enable_extended_rowidを参照してください。 |
| system_var_name | テナントのシステム変数値を変更します。 |
| RENAME GLOBAL_NAME TO | テナント名を変更します。 |
| COMMENT | コメントを変更します。 |
例
テナント
tenant1のプライマリゾーンをzone2に変更します。obclient [oceanbase]> ALTER TENANT tenant1 primary_zone='zone2';テナント
tenant1のプライマリゾーンをRANDOMに変更します。obclient [oceanbase]> ALTER TENANT tenant1 primary_zone = RANDOM;このテナントが
zone1、zone2、zone3の3つのゾーンを持っている場合、このステートメントは以下と同じです。obclient [oceanbase]> ALTER TENANT tenant1 primary_zone = 'zon1,zone2,zone3';リソースプールの変更は、通常、テナントのレプリカ数の昇格および降格のシナリオで使用されます。また、リソースプールを変更する際は、一度に1つのリソースプールしか追加または削除できません。以下のステートメントを実行して、テナントのリソースプール
pool1を直接pool2に置き換えることはできません。そうしないと、以下のエラーが発生します。obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool2');エラーメッセージは次のとおりです。
ERROR 1210 (HY000): Incorrect arguments to resource pool listテナントの利用可能なリソースを調整したい場合、例えばテナントの拡張が必要な場合は、リソースユニットの仕様を引き上げることができます。
obclient [oceanbase]> ALTER RESOURCE UNIT unit1 MAX_CPU 15, MEMORY_SIZE '20G', MAX_IOPS 1280, MIN_CPU=10, MIN_IOPS=1024;テナント
tenant1のローカリティを変更し、レプリカ数を増やします。ここで、Fはフル機能レプリカタイプを表し、B_4は新しく追加されたゾーン名です。現在のテナント
tenant1のローカリティがF@B_1,F@B_2,F@B_3、リソースプールがpool1であり、そのZONE_LISTの範囲が'B_1','B_2','B_3'であると仮定します。リソースユニット
unit2を作成します。obclient [oceanbase]> CREATE RESOURCE UNIT unit2, MAX_CPU=5, MIN_CPU=2.5, MEMORY_SIZE= '32G', MAX_IOPS=10000, MIN_IOPS=5000, LOG_DISK_SIZE=5301023539200;リソースプール
pool2を作成します。obclient [oceanbase]> CREATE RESOURCE POOL pool2 unit='unit2',unit_num=1,zone_list=('B_4');テナントにリソースプール
pool2を追加します。obclient [oceanbase]> ALTER TENANT tenant1 resource_pool_list=('pool1','pool2');テナントのローカリティを変更します。
obclient [oceanbase]> ALTER TENANT tenant1 LOCALITY='F@B_1,F@B_2,F@B_3,F@B_4';追加するレプリカタイプがカラムストアレプリカの場合、テナントのローカリティを変更するステートメントは以下のとおりです:
obclient [oceanbase]> ALTER TENANT tenant1 LOCALITY = 'F@B_1,F@B_2,F@B_3,C@B_4';注意
- テナントのローカリティを変更する際、カラムストアレプリカについては、レプリカの追加と削除のみサポートされ、レプリカタイプの変換はサポートされません。つまり、カラムストアレプリカを追加する場合、元のゾーンにレプリカが存在してはなりません。カラムストアレプリカを削減する場合は、カラムストアレプリカが存在するゾーンをレプリカなしに変更する必要があります。
- テナントにカラムストアレプリカを追加した後、それらにアクセスするには、ODPを追加でデプロイし、一連の設定を行って接続をカラムストアレプリカにルーティングする必要があります。カラムストアレプリカの詳細な使用方法については、カラムストアレプリカを参照してください。
アービトレーションサービスがデプロイされているシナリオで、
tenant1のアービトレーションサービスを有効にします。obclient [oceanbase]> ALTER TENANT tenant1 ENABLE_ARBITRATION_SERVICE=true;通常のテナント
tenant1の名前をtenant101に変更します。obclient [oceanbase]> ALTER TENANT tenant1 RENAME GLOBAL_NAME TO tenant101;テナント
tenant1をロックします。obclient [oceanbase]> ALTER TENANT tenant1 LOCK;