OceanBase Database の MySQL テナント間でデータを移行する際に、DDL 操作を同期できます。
同期がサポートされている DDL 操作
CREATE TABLE文を使用したテーブルの作成。パーティションテーブルを作成できますが、
CREATE TABLE AS SELECTを使用してテーブルを作成することはできません。HASH、RANGE、および LIST パーティションテーブルと、HASH、RANGE、および LIST サブパーティションテーブルがサポートされています。DROP TABLE文を使用したテーブルの削除。TRUNCATE TABLE文を使用したテーブルの切り捨て。RENAME TABLE文またはALTER TABLE RENAME文を使用したテーブルの名前変更。ALTER TABLE ADD COLUMN文を使用した列の追加。ALTER TABLE MODIFY COLUMN文を使用した列の変更。重要列の長さを増やすことはできますが、列の型を変更することはできません。
CREATE INDEX文を使用したインデックスの作成。DROP INDEX文を使用したインデックスの削除。COMMENT文を使用した、テーブルまたは列に関するコメントの追加または削除。
DDL 同期の制限
同期対象のテーブルに、サポートされていない DDL 操作が含まれている場合、データ移行プロジェクトが中断され、回復不能なデータ例外が発生する可能性があります。
テーブルに対する頻繁な DDL 操作はサポートされていません。ストアが DDL 操作を完了した後 (タイムスタンプに基づいて判断できます)、次の DDL 操作に進みます。そうでない場合、ストアが予期せず終了し、回復不能なデータ例外が発生する可能性があります。
ストアを作成する前、およびストアの起動中は、DDL 操作を実行しないでください。ログのプルが含まれる場合は、ログのプルの開始時刻から現在時刻までの期間に、DDL 操作を実行しないでください。そうでない場合、ストアが予期せず終了し、回復不能なデータ例外が発生する可能性があります。
RENAME TABLE文の前後のテーブル名は、どちらも同期するテーブルのリストに含まれるか、どちらも含まれないようにする必要があります。case when index文を含むテーブル作成 DDL 操作は同期できません。DDL 同期を有効にすると、
DROP INDEX文を実行してソースデータベースで削除されたインデックスも、ターゲットデータベースで削除されます。これにより、ターゲットデータベースでインデックスが失われる可能性があります。