本文为您介绍迁移 OceanBase 数据库 MySQL 租户的数据至 MySQL 数据库时,支持的同步 DDL。
同步 DDL 支持的范围
创建表
CREATE TABLE
说明不支持
CREATE TABLE AS SELECT
。删除表
DROP TABLE
清空表
TRUNCATE TABLE
修改列
ALTER TABLE CHANGE COLUMN
说明仅支持修改列至更大的长度,不支持修改列的类型。
添加列
ALTER TABLE ADD COLUMN
修改列的默认值
ALTER TABLE ALTER COLUMN SET DEFAULT
或ALTER TABLE ALTER COLUMN DROP DEFAULT
删除列
ALTER TABLE DROP COLUMN
新建索引
CREATE INDEX
或ALTER TABLE ADD INDEX
删除索引
DROP INDEX
或ALTER TABLE DROP INDEX
同步 DDL 的使用限制
如果需要同步的表涉及支持范围外的 DDL,数据迁移项目可能会中断并造成数据问题,且无法恢复。
不能频繁对一张表进行 DDL 操作。当 Store 处理完当前 DDL 后(根据位点判断),再进行下一个 DDL。否则 Store 可能异常退出或造成数据问题,且无法恢复。
新建 Store 前的一段时间和启动过程中,需要确保无 DDL。如果是回拉,回拉点至当前时间保证无 DDL。否则 Store 可能异常退出或造成数据问题,且无法恢复。
RENAME TABLE
前后的表名,必须全在需要同步的表中,或者全不在需要同步的表中。开启增量 DDL 后,
DROP INDEX
命令会无差别执行,可能导致目标端索引丢失。