同步 DDL 支援的範圍
建立表
CREATE TABLE重要包括分區表,不包括
CREATE TABLE AS SELECT。刪除表
DROP TABLE清空表
TRUNCATE TABLE添加分區
ADD PARTITION支援添加一級分區和二級分區。其中一級和二級分區均支援添加 Range/List 分區,不支援添加 Hash 分區。
刪除分區
DROP PARTITION支援刪除單個或多個分區,以及刪除二級分區。
清空分區
TRUNCATE PARTITION支援清空單個或多個分區,以及清空二級分區。
表重新命名
RENAME TABLE或ALTER TABLE RENAME添加列
ALTER TABLE ADD COLUMN修改列
ALTER TABLE MODIFY COLUMN重要僅支援修改列至更大的長度,不支援修改列的類型。
建立索引
CREATE INDEX刪除索引
DROP INDEX添加和刪除表或列的注釋
同步 DDL 的使用限制
除支援的同步 DDL 類型外,其它類型均不支援。如果需要同步的表涉及不支援的同步 DDL 類型,資料移轉專案可能會中斷並造成資料不一致的問題,且無法恢複。
不能頻繁對一張表進行 DDL 操作,否則可能導致專案異常或造成資料問題,且無法恢複。
RENAME TABLE前後的表名,必須全在需要同步的表中。刪除使用者未命名的 PK,對應刪除的是 Oracle 系統命名的約束(
SYS_C開頭的命名方式)。如果是 Oracle 資料庫至 OceanBase 資料庫等庫到庫的資料移轉或資料同步,OceanBase 資料庫上的 PK 名稱和 Oracle 資料庫的不同,因此無法在 OceanBase 資料庫中刪除。遷移 OceanBase 資料庫 Oracle 租戶的資料至 Oracle 資料庫時,不支援導致表從有主鍵表變為無主鍵表的 DDL 操作。
如果 OceanBase 資料庫 Oracle 租戶中存在
PK,則支援所有的 DDL 操作。如果 OceanBase 資料庫 Oracle 租戶中僅存在
NOT NULL UK,則不支援導致 OceanBase 資料庫失去NOT NULL UK的 DDL 操作。
存在
CASE WHEN INDEX的建表 DDL 不支援同步。