遷移或同步 OceanBase 資料庫 MySQL 租戶的資料至 OceanBase 資料庫 MySQL 租戶時,支援同步 DDL。
如果源端建立了 index,目標端已經存在。資料轉送會自動忽略該 index,不會中斷。
同步 DDL 支援的範圍
添加列
ALTER TABLE ADD COLUMN
修改列
ALTER TABLE MODIFY COLUMN
重要僅支援修改列至更大的長度,不支援修改列的類型。
修改列的預設值
ALTER TABLE ALTER COLUMN SET DEFAULT
或ALTER TABLE ALTER COLUMN DROP DEFAULT
刪除列
ALTER TABLE DROP COLUMN
建立表
CREATE TABLE
刪除表
DROP TABLE
清空表
TRUNCATE TABLE
建立索引
CREATE INDEX
或ALTER TABLE ADD INDEX
刪除索引
DROP INDEX
或ALTER TABLE DROP INDEX
表重新命名
RENAME TABLE
或ALTER TABLE RENAME
同步 DDL 的使用限制
如果需要同步的表涉及支援範圍外的 DDL,資料移轉或資料同步專案可能會中斷並造成資料問題,且無法恢複。
不能頻繁對一張表進行 DDL 操作。當 Store 處理完當前 DDL 後(根據位點判斷),再進行下一個 DDL。否則 Store 可能異常退出或造成資料問題,且無法恢複。
建立 Store 前的一段時間和啟動過程中,需要確保無 DDL。如果是回拉,回拉點至目前時間保證無 DDL。否則 Store 可能異常退出或造成資料問題,且無法恢複。
RENAME TABLE
前後的表名,必須全在需要同步的表中,或者全不在需要同步的表中。開啟同步 DDL 後,
DROP INDEX
命令會無差別執行,可能導致目標端索引丟失。