テーブルグループを作成した後、業務の変更に応じて、その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プロパティの変更は成功しました。