DM DDL の特別な処理

TiDB データ マイグレーション (DM) はデータを移行するときに、DDL ステートメントを解析し、ステートメント タイプと現在の移行ステージに従ってそれらを処理します。

DDL ステートメントをスキップする

次のステートメントは DM ではサポートされていないため、DM は解析直後にこれらのステートメントをスキップします。

説明SQL
取引^SAVEPOINT
すべてのフラッシュ SQL をスキップする^FLUSH
テーブルメンテナンス^OPTIMIZE\\s+TABLE
^ANALYZE\\s+TABLE
^REPAIR\\s+TABLE
一時テーブル^DROP\\s+(\\/\\*\\!40005\\s+)?TEMPORARY\\s+(\\*\\/\\s+)?TABLE
引き金^CREATE\\s+(DEFINER\\s?=.+?)?TRIGGER
^DROP\\s+TRIGGER
手順^DROP\\s+PROCEDURE
^CREATE\\s+(DEFINER\\s?=.+?)?PROCEDURE
^ALTER\\s+PROCEDURE
ビュー^CREATE\\s*(OR REPLACE)?\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?\\s+(SQL SECURITY DEFINER)?VIEW
^DROP\\s+VIEW
^ALTER\\s+(ALGORITHM\\s?=.+?)?(DEFINER\\s?=.+?)?(SQL SECURITY DEFINER)?VIEW
関数^CREATE\\s+(AGGREGATE)?\\s*?FUNCTION
^CREATE\\s+(DEFINER\\s?=.+?)?FUNCTION
^ALTER\\s+FUNCTION
^DROP\\s+FUNCTION
テーブルスペース^CREATE\\s+TABLESPACE
^ALTER\\s+TABLESPACE
^DROP\\s+TABLESPACE
イベント^CREATE\\s+(DEFINER\\s?=.+?)?EVENT
^ALTER\\s+(DEFINER\\s?=.+?)?EVENT
^DROP\\s+EVENT
アカウント管理^GRANT
^REVOKE
^CREATE\\s+USER
^ALTER\\s+USER
^RENAME\\s+USER
^DROP\\s+USER
^DROP\\s+USER

DDL ステートメントを書き直す

次のステートメントは、ダウンストリームにレプリケートされる前に書き換えられます。

元の声明書き直された声明
^CREATE DATABASE...^CREATE DATABASE...IF NOT EXISTS
^CREATE TABLE...^CREATE TABLE..IF NOT EXISTS
^DROP DATABASE...^DROP DATABASE...IF EXISTS
^DROP TABLE...^DROP TABLE...IF EXISTS
^DROP INDEX...^DROP INDEX...IF EXISTS

シャードマージ移行タスク

DM が悲観的モードまたは楽観的モードでテーブルをマージおよび移行する場合、DDL レプリケーションの動作は他のシナリオの動作とは異なります。詳細は悲観的モード楽観的モードを参照してください。

オンラインDDL

オンライン DDL 機能は、特別な方法で DDL イベントも処理します。詳細はGH-ost/PT-osc を使用するデータベースからの移行を参照してください。

このページは役に立ちましたか?