OceanBase 数据库 Oracle 租户之间的同步 DDL

迁移 OceanBase 数据库 MySQL 租户的数据至 OceanBase 数据库 MySQL 租户时,支持同步 DDL。

同步 DDL 支持的范围

  • 创建表 CREATE TABLE

    包括分区表,不包括 CREATE TABLE AS SELECT。支持的分区表类型有一级分区(Hash、Range 和 List)、二级分区(Hash、Range 和 List)。

  • 删除表 DROP TABLE

  • 清空表 TRUNCATE TABLE

  • 表重命名 RENAME TABLEALTER 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 命令会无差别执行,可能导致目标端索引丢失。