Skip to content

Latest commit

 

History

History
143 lines (131 loc) · 4.14 KB

dm-ddl-compatible.md

File metadata and controls

143 lines (131 loc) · 4.14 KB
title summary
Data Migration DDL 特殊处理说明
数据迁移中,根据不同的 DDL 语句和场景,采用不同处理方式。DM 不支持的 DDL 语句会直接跳过。部分 DDL 语句在同步到下游前会进行改写。在合库合表迁移任务中,DDL 同步行为存在变更。Online DDL 特性也会对 DDL 事件进行特殊处理。

Data Migration DDL 特殊处理说明

DM 同步过程中,根据 DDL 语句以及所处场景的不同,将采用不同的处理方式。

忽略的 DDL 语句

以下语句 DM 并未支持,因此解析之后直接跳过。

描述 SQL
transaction ^SAVEPOINT
skip all flush sqls ^FLUSH
table maintenance ^OPTIMIZE\\s+TABLE
^ANALYZE\\s+TABLE
^REPAIR\\s+TABLE
temporary table ^DROP\\s+(\\/\\*\\!40005\\s+)?TEMPORARY\\s+(\\*\\/\\s+)?TABLE
trigger ^CREATE\\s+(DEFINER\\s?=.+?)?TRIGGER
^DROP\\s+TRIGGER
procedure ^DROP\\s+PROCEDURE
^CREATE\\s+(DEFINER\\s?=.+?)?PROCEDURE
^ALTER\\s+PROCEDURE
view ^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
function ^CREATE\\s+(AGGREGATE)?\\s*?FUNCTION
^CREATE\\s+(DEFINER\\s?=.+?)?FUNCTION
^ALTER\\s+FUNCTION
^DROP\\s+FUNCTION
tableSpace ^CREATE\\s+TABLESPACE
^ALTER\\s+TABLESPACE
^DROP\\s+TABLESPACE
event ^CREATE\\s+(DEFINER\\s?=.+?)?EVENT
^ALTER\\s+(DEFINER\\s?=.+?)?EVENT
^DROP\\s+EVENT
account management ^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

合库合表迁移任务

当使用悲观协调模式和乐观协调模式进行分库分表合并迁移时,DDL 同步的行为存在变更,具体请参考悲观模式乐观模式

Online DDL

Online DDL 特性也会对 DDL 事件进行特殊处理,详情可参考迁移使用 GH-ost/PT-osc 的源数据库