テーブルグループを作成した後、ビジネスの変化に応じて、その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';同一のパーティション定義を持つパーティションテーブル
tbl1とtbl2を2つ作成し、テーブルグループ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プロパティの変更は成功しました。