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