DDL同期のサポート範囲
テーブルの作成
CREATE TABLE注意
パーティションテーブルを含みます。
CREATE TABLE AS SELECTは含まれません。テーブルの削除
DROP TABLEテーブルの削除
TRUNCATE TABLEパーティションの追加
ADD PARTITIONパーティションとサブパーティションの追加をサポートします。パーティションとサブパーティションはどちらもRange/Listパーティションの追加をサポートしますが、Hashパーティションの追加はサポートしません。
パーティションの削除
DROP PARTITION単一または複数のパーティション、およびサブパーティションの削除をサポートします。
パーティションの削除
TRUNCATE PARTITION単一または複数のパーティション、およびサブパーティションの削除をサポートします。
テーブル名の変更
RENAME TABLEまたはALTER TABLE RENAME列の追加
ALTER TABLE ADD COLUMN列の変更
ALTER TABLE MODIFY COLUMN注意
列の長さを長くする変更のみをサポートします。列の型の変更はサポートしません。
インデックスの作成
CREATE INDEXインデックスの削除
DROP INDEXテーブルまたは列のコメントの追加と削除
DDL同期の制限事項
サポートされているDDL同期タイプ以外のタイプはサポートされていません。同期が必要なテーブルがサポートされていないDDL同期タイプに関連している場合、データ移行タスクが中断し、データの不整合が発生する可能性があり、その後の復旧はできません。
1つのテーブルに対して頻繁にDDL操作を実行することはできません。Storeが現在のDDLを処理終了した後(ビットポイントに基づいて判断)、次のDDLを実行します。そうでない場合、Storeが異常終了したり、データに問題が発生したりして、それを復元できなくなる可能性があります。
Storeを新規作成する直前の期間および起動中は、DDLが実行されないことを保証する必要があります。再読み込みの場合は、再読み込み開始時点から現在までの間、DDLが実行されないことを保証する必要があります。そうでない場合、Storeが異常終了したり、データに問題が発生したりして、それを復元できなくなる可能性があります。
RENAME TABLEの前後のテーブル名は、同期が必要なテーブルに含まれている必要があります。ユーザーが名付けていないPKを削除すると、Oracleシステムが名付けた制約(
SYS_Cで始まる命名規則)が削除されます。OracleデータベースからOceanBaseデータベースなどのデータベース間でデータを移行または同期する場合、OceanBaseデータベース上のPK名はOracleデータベースと異なるため、OceanBaseデータベースでは削除できません。OceanBaseデータベースのOracle互換モードのテナントデータをOracleデータベースに移行する際、主キーを持つテーブルから主キーを持たないテーブルへ変更するDDL操作はサポートされません。
OceanBaseデータベースのOracle互換モードのテナントに
PKが存在する場合、すべてのDDL操作をサポートします。OceanBaseデータベースのOracle互換モードのテナントに
NOT NULL UKのみが存在する場合、OceanBaseデータベースがNOT NULL UKを失うことになるDDL操作はサポートされません。
CASE WHEN INDEXを含むテーブル作成DDLは、同期をサポートしません。