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