遷移 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
命令會無差別執行,可能導致目標端索引丟失。