テーブルグループを作成した後、業務の変更に応じて、その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'
ステートメントの使用方法:
tablegroup_name:変更対象のテーブルグループ名。SHARDING:テーブルグループのプロパティ。テーブルグループのプロパティを変更する際には、変更ルールに従う必要があります。
テーブルグループのプロパティを変更する例:
SHARDINGプロパティをPARTITIONに設定したテーブルグループtblgroup1を作成します。CREATE TABLEGROUP tblgroup1 SHARDING = 'PARTITION';2つのパーティションを持つ、同じパーティションテーブル
tbl1とtbl2を作成し、テーブルグループtblgroup1に追加します。CREATE TABLE tbl1(col1 NUMBER,col2 VARCHAR2(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES('01'), PARTITION p1 VALUES('02') );CREATE TABLE tbl2(col1 NUMBER,col2 VARCHAR2(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES('01'), PARTITION p1 VALUES('02') );テーブルグループ
tblgroup1のSHARDINGプロパティをADAPTIVEに変更します。ALTER TABLEGROUP tblgroup1 SHARDING = 'ADAPTIVE';テーブルグループのプロパティを確認します。
SHOW TABLEGROUPS WHERE tablegroup_name = 'TBLGROUP1';結果は次のとおりです:
+-----------------+------------+---------------+----------+ | TABLEGROUP_NAME | TABLE_NAME | DATABASE_NAME | SHARDING | +-----------------+------------+---------------+----------+ | TBLGROUP1 | TBL1 | SYS | ADAPTIVE | | TBLGROUP1 | TBL2 | SYS | ADAPTIVE | +-----------------+------------+---------------+----------+ 2 rows in setテーブルグループ内のテーブル
TBL1とTBL2はどちらもパーティションテーブルであり、パーティションタイプ、パーティション数、パーティション値がすべて同一であるため、変更ルールに適合しており、SHARDINGプロパティの変更は成功しました。