Skip to content

Latest commit

 

History

History
142 lines (130 loc) · 3.49 KB

dm-ddl-compatible.md

File metadata and controls

142 lines (130 loc) · 3.49 KB
title
Data Migration 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 TABLE...IF EXISTS
^DROP TABLE... ^DROP TABLE...IF EXISTS
^DROP INDEX... ^DROP INDEX...IF EXISTS

合库合表迁移任务

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

Online DDL

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