DM DDL の特別な処理

TiDB データ移行 (DM) はデータを移行するときに、DDL ステートメントを解析し、ステートメントの種類と現在の移行段階に応じて処理します。

DDL文をスキップする

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

説明構文
取引^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 を使用するデータベースからの移行を参照してください。

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