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

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