テーブルグループを作成した後、ビジネスの変化に応じて、そのSHARDINGプロパティを変更できます。
使用上の制限
OceanBaseデータベースのアップグレード中は、ALTER TABLEGROUP ステートメントを使用してテーブルグループの SHARDING プロパティを変更することは禁止されています。
変更ルール
テーブルグループの SHARDING プロパティを変更する前に、そのテーブルグループ内にテーブルが存在するかどうか、およびテーブルのパーティション情報を確認する必要があります。テーブルグループ内のテーブルの具体的な操作については、テーブルグループ情報の確認を参照してください。
クエリ結果に基づき、テーブルグループ内にテーブルがない場合は、テーブルグループの SHARDING プロパティを任意に変更できます。テーブルグループ内にテーブルがある場合は、以下の変更ルールに従う必要があります:
テーブルグループの
SHARDINGプロパティをNONEに変更する場合、テーブルグループ内のテーブルのパーティション定義を考慮する必要はなく、直接変更できます。テーブルグループの
SHARDINGプロパティをPARTITIONに変更する場合:テーブルグループ内のすべてのテーブルが非パーティションテーブルの場合、直接変更できます。
テーブルグループ内に非パーティションテーブルとパーティションテーブルが混在する場合、変更できません。
テーブルグループ内にパーティションテーブルまたはサブパーティションテーブルが1種類のみ存在する場合、テーブルグループ内のすべてのテーブルのパーティションタイプ、パーティション数、パーティション値が同じである必要があります。同じでない場合、変更できません。
テーブルグループの
SHARDINGプロパティをADAPTIVEに変更する場合:テーブルグループ内のすべてのテーブルが非パーティションテーブルの場合、直接変更できます。
テーブルグループ内に非パーティションテーブルとパーティションテーブルが混在する場合、変更できません。
テーブルグループ内にパーティションテーブルとサブパーティションテーブルが混在する場合、変更できません。
テーブルグループ内のすべてのテーブルがパーティションテーブルの場合、すべてのパーティションテーブルのパーティションタイプ、パーティション数、パーティション値が同じである必要があります。
テーブルグループ内のすべてのテーブルがサブパーティションテーブルの場合、すべてのパーティションテーブルとサブパーティションテーブルのパーティションタイプ、パーティション数、パーティション値が同じである必要があります。
テーブルグループのプロパティを変更する
テーブルグループの SHARDING プロパティを変更するSQLステートメントは以下のとおりです:
ALTER TABLEGROUP tablegroup_name tablegroup_option;
tablegroup_option:
SHARDING = 'NONE'
SHARDING = 'PARTITION'
SHARDING = 'ADAPTIVE'
ステートメントの使用方法:
このステートメントを実行するには、現在のユーザーがグローバルな
ALTER権限を持っていることを確認する必要があります。tablegroup_name:変更対象のテーブルグループ名。SHARDING:テーブルグループのプロパティ。テーブルグループのプロパティを変更する際は、変更ルールに従う必要があります。
テーブルグループのプロパティを変更する例:
SHARDINGプロパティをPARTITIONに設定したテーブルグループtblgroup1を作成します。CREATE TABLEGROUP tblgroup1 SHARDING = 'PARTITION';同じパーティション定義を持つ2つのパーティションテーブル
tbl1とtbl2を作成し、テーブルグループtblgroup1に追加します。CREATE TABLE tbl1 (col1 BIGINT PRIMARY KEY,col2 VARCHAR(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES IN (1, 2, 3), PARTITION p1 VALUES IN (5, 6), PARTITION p2 VALUES IN (DEFAULT) );CREATE TABLE tbl2 (col1 BIGINT PRIMARY KEY,col2 VARCHAR(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES IN (1, 2, 3), PARTITION p1 VALUES IN (5, 6), PARTITION p2 VALUES IN (DEFAULT) );テーブルグループ
tblgroup1のSHARDINGプロパティをADAPTIVEに変更します。ALTER TABLEGROUP tblgroup1 SHARDING = "ADAPTIVE";テーブルグループのプロパティを確認します。
SHOW TABLEGROUPS WHERE tablegroup_name = 'tblgroup1';結果は次のとおりです:
+-----------------+------------+---------------+----------+ | Tablegroup_name | Table_name | Database_name | Sharding | +-----------------+------------+---------------+----------+ | tblgroup1 | tbl1 | test | ADAPTIVE | | tblgroup1 | tbl2 | test | ADAPTIVE | +-----------------+------------+---------------+----------+ 2 rows in setテーブルグループ内のテーブル
tbl1とtbl2はどちらもパーティションテーブルであり、パーティションタイプ、パーティション数、パーティション値がすべて同じであるため、変更ルールに適合し、SHARDINGプロパティの変更は成功しました。