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タイプを含む場合、データ移行タスクの中断と同時に、データの不整合が発生し、復旧できなくなる可能性があります。
同じテーブルに対して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の同期はサポートされません。