本文為您介紹如何使用資料轉送遷移 PolarDB-O 資料庫的資料至 OceanBase 資料庫 Oracle 租戶。
如果資料移轉任務長期處於非活躍狀態(任務狀態為 失敗、已暫停 或 已完成),受增量日誌保留時間長度等影響,任務可能無法恢複。資料轉送將主動釋放處於非活躍狀態超過 3 天的資料移轉任務,以回收相關資源,建議您為任務配置警示並及時處理任務相關異常。
前提條件
資料轉送已具備雲資源存取權限。詳情請參見 資料轉送遷移角色授權。
已為源端 PolarDB-O 資料庫建立專用於資料移轉任務的高許可權帳號。詳情請參見 PolarDB-O 資料來源。
已為目標端 OceanBase 資料庫 Oracle 租戶建立專用於資料移轉任務的資料庫使用者,並為其賦予了相關許可權。詳情請參見 建立資料庫使用者。
使用限制
源端資料庫的操作限制
請勿在結構遷移和全量遷移階段執行庫或表結構變更的 DDL 操作,否則可能造成資料移轉任務中斷。
目前支援的 PolarDB-O 資料庫版本為 V1.x 和 V2.x。
目標端是資料庫的情況下,資料轉送不支援目標端存在觸發器(Trigger)。如果存在觸發器,可能導致資料移轉失敗。
資料轉送僅支援遷移庫名、表名和列名為 ASCII 碼且不包含特殊字元(包括換行、空格,以及 .|"'`()=;/&\)的對象。
當源端為 PolarDB-O 資料庫 V1.0 時,請勿添加包含產生列的表作為增量同步處理的對象,否則會因為無法解析產生列的結構資訊、無法擷取產生列的資料資訊而導致增量資料解析失敗,造成增量同步處理任務異常的問題。
當 PolarDB-O 資料庫存在全域暫存資料表時,Data Transmission Service無法識別該表類型,結構遷移、全量遷移將作為普通表遷移,並且會導致增量同步處理丟失對應表資料。請自行評估該類型表對象是否增加到資料移轉對象列表中。
源端請勿執行對資料庫物件(表、索引和列)增加雙引號的 DDL,否則會導致目標端可能存在 DDL 或對應對象後續 DML 執行失敗導致任務中斷的問題。
注意事項
如果源端字元集為 UTF-8,建議目標端使用相容源端的字元集(例如,UTF-8、UTF-16 等),避免因字元集不相容導致目標端出現亂碼等問題。
請確認資料轉送對 DECIMAL、FLOAT 或 DOUBLE 等列類型的遷移精度是否符合預期。如果目標端欄位類型的精度小於源端欄位類型的精度,則可能發生截斷現象,導致源端和目標端的資料不一致。
如果您變更目標端的唯一索引,需要重啟資料移轉任務,否則可能存在資料不一致的問題。
節點之間的時鐘不同步,或者電腦終端和伺服器之間的時鐘不同步,均可能導致延遲時間(增量同步處理/反向增量)不準確。
例如,如果時鐘早於標準時間,可能導致延遲時間為負數。如果時鐘晚於標準時間,可能導致延遲。
庫表匯聚情境下:
建議您使用匹配規則的方式映射源端和目標端的關係。
建議您在目標端自行建立表結構。如果使用資料轉送建立,請在結構遷移步驟跳過部分失敗對象。
如果在建立資料移轉任務時,您僅配置了 增量同步處理,資料轉送將要求源端資料庫的本地增量日誌儲存 48 小時以上。
如果在建立資料移轉任務時,您配置了 全量遷移+增量同步處理,資料轉送要求源端資料庫的本地增量日誌至少保留 7 天以上。否則資料轉送可能因無法擷取增量日誌而導致資料移轉任務失敗,甚至導致源端和目標端資料不一致。
如果源端或目標端存在僅大小寫不同的表對象,可能會因為源端或目標端大小寫不敏感導致資料移轉的結果不符合預期。
支援的源端和目標端執行個體類型
源端 | 目標端 |
PolarDB-O | OB_Oracle(OceanBase 叢集執行個體) |
PolarDB-O | OB_Oracle(Serverless 執行個體) |
資料類型映射
PolarDB-O 資料庫 | OceanBase 資料庫 Oracle 租戶 |
int2 | NUMBER(5) |
int4 | NUMBER(10) |
int8 | NUMBER(20) |
numeric | NUMBER |
float4 | BINARY_FLOAT |
float8 | BINARY_DOUBLE |
smallserial | NUMBER(5) |
serial4 | NUMBER(10) |
bigserial | NUMBER(20) |
timestamp | TIMESTAMP(6) |
timestamptz | TIMESTAMP(6) WITH TIME ZONE |
time | TIMESTAMP(6) |
timetz | TIMESTAMP(6) WITH TIME ZONE |
bool | NUMBER(1) |
bytea | BLOB |
text | CLOB |
bpchar(n) | CHAR(n CHAR) 說明 如果 n * 4 > 2000,則轉換為 VARCHAR2(n CHAR)。 |
varchar(n) | VARCHAR2(n CHAR) 說明 如果 n * 4 > 32767L,則轉換為 CLOB。 |
numeric(p, s) | Number(p, s) PolarDB-O 資料庫的數字範圍較大。當數字範圍超出 OceanBase 資料庫 Oracle 租戶可儲存的範圍時,存在以下轉換規則:
|
操作步驟
登入 OceanBase 管理主控台,購買資料移轉任務。
詳情請參見 購買資料移轉任務。
在 資料轉送 > 資料移轉 頁面,單擊新購買的資料移轉任務後的 配置。

如果您需要引用已有的任務配置資訊,可以單擊 引用配置。詳情請參見 引用資料移轉任務配置。
在 選擇源和目標 頁面,配置各項參數。
參數
描述
遷移任務名稱
建議使用中文、數字和字母的組合。名稱中不能包含空格,長度不能超過 64 個字元。
源端
如果您已建立 PolarDB-O 資料來源,請從下拉式清單中進行選擇。如果未建立,請單擊下拉式清單中的 建立資料來源,在右側對話方塊進行建立。參數詳情請參見 建立 PolarDB-O 資料來源。
目標端
如果您已建立 OceanBase 資料庫 Oracle 租戶資料來源,請從下拉式清單中進行選擇。如果未建立,請單擊下拉式清單中的 建立資料來源,在右側對話方塊進行建立。參數詳情請參見 建立 OceanBase 資料來源。
標籤(可選)
單擊文字框,在下拉式清單中選擇目標標籤。您也可以單擊 管理標籤 進行建立、修改和刪除。詳情請參見 通過標籤管理資料移轉任務。
單擊 下一步。在 選擇遷移類型 頁面,選擇當前資料移轉任務的遷移類型。
遷移類型 包括 結構遷移、全量遷移、增量同步處理、全量校正 和 反向增量。

遷移類型
描述
結構遷移
結構遷移任務開始後,資料轉送會將源庫中的資料對象定義(表、索引、約束、注釋和視圖等)遷移至目標資料庫中,並自動過濾暫存資料表。
全量遷移
全量遷移任務開始後,資料轉送會將源端庫表的存量資料移轉至目標端資料庫對應的表中。
增量同步處理
增量同步處理任務開始後,資料轉送會同步源端資料庫發生變化的資料(新增、修改或刪除)至目標端資料庫對應的表中。
增量同步處理 包括 DML 同步 和 DDL 同步,您可以根據需求進行自訂配置。詳情請參見 自訂配置 DDL/DML。增量同步處理 的使用限制如下:
如果您選擇了 DDL 同步,當源端資料庫發生資料轉送不支援的同步 DDL 操作時,會存在資料移轉中斷的風險。
如果 DDL 操作為新增列,請將該列的屬性設定為 Null,否則會存在資料移轉中斷的風險。
全量校正
在全量遷移完成、增量資料同步至目標端並與源端基本追平後,資料轉送會自動發起一輪針對源端資料庫配置的資料表和目標表的全量資料校正任務。
如果您選擇了 增量同步處理,且 DML 同步 選項中未選擇所有的 DML,則資料轉送不支援本情境下的全量資料校正。
反向增量
反向增量任務開始後,可以即時將業務切換後在目標端資料庫產生的變更資料迴流至源端資料庫。
通常反向增量會複用增量同步處理的配置,您也可以根據實際需求進行自訂配置。
單擊 下一步。在 選擇遷移對象 頁面,選擇當前資料移轉任務的遷移對象。
您可以通過 指定對象 和 匹配規則 兩個入口選擇遷移對象。本文為您介紹通過 指定對象 方式選擇遷移對象的具體操作,配置匹配規則的詳情請參見 配置和修改匹配規則 中庫到庫的通配規則說明和配置方式。
重要待遷移的表名和其中的列名不能包含中文字元。
當資料庫的庫名或表名存在“$$”字元時,會影響資料移轉任務的建立。
如果您在 選擇遷移類型 步驟已勾選 DDL 同步,建議通過匹配規則方式選擇遷移對象,以確保所有符合遷移對象規則的新增對象都將被同步。如果您通過指定對象方式選擇遷移對象,則新增對象或重新命名後的對象將不會被同步。

在 選擇遷移對象 地區,選中 指定對象。
在 選擇遷移範圍 地區的 源端對象 列表選中需要遷移的對象。您可以選擇一個或多個庫的表、視圖作為遷移對象。
單擊 >,將其添加至 目標端對象 列表中。
資料轉送支援通過文本匯入對象,並支援對目標端對象進行重新命名、設定行過濾、查看列資訊,以及移除單個或全部遷移對象等操作。
說明通過 匹配規則 方式選擇遷移對象時,重新命名能力由匹配規則文法覆蓋,操作處僅支援設定過濾條件。詳情請參見 配置和修改匹配規則。
操作
描述
匯入對象
在選擇地區的右側列表中,單擊右上方的 匯入對象。
在對話方塊中,單擊 確定。
重要匯入會覆蓋之前的操作選擇,請謹慎操作。
在 匯入遷移對象 對話方塊中,匯入需要遷移的對象。
您可以通過匯入 CSV 檔案的方式進行庫表重新命名、設定行過濾條件等操作。詳情請參見 下載和匯入遷移對象配置。
單擊 檢驗合法性。
完成遷移對象匯入後,請先檢驗合法性。目前暫不支援欄欄位映射。
通過檢驗後,單擊 確定。
重新命名
資料轉送支援重新命名遷移對象的名稱,詳情請參見 資料庫庫表重新命名。
設定
資料轉送支援
WHERE條件實現行過濾,詳情請參見 SQL 條件過濾資料。您還可以在 查看列 地區,查看遷移對象的列資訊。
移除/全部移除
資料轉送支援在資料對應時,對暫時選中到目標端的單個或多個對象進行移除操作。
移除單個遷移對象
在選擇地區的右側列表中,滑鼠移至上方至目標對象,單擊顯示的 移除,即可移除該遷移對象。
移除全部遷移對象
在選擇地區的右側列表中,單擊右上方的 全部移除。在對話方塊中,單擊 確定,即可移除全部遷移對象。
單擊 下一步。在 遷移選項 頁面,配置各項參數。
全量遷移
在 選擇遷移類型 頁面,選中 全量遷移,才會顯示下述參數。

參數
描述
讀取並發配置
該參數用於配置全量遷移階段從源端讀取資料的並發數,最大限制為 512 並發數過高可能會造成源端壓力過大,影響業務。
寫入並發配置
該參數用於配置全量遷移階段往目標端寫入資料的並發數,最大限制為 512。並發數過高可能會造成目標端壓力過大,影響業務。
全量遷移速率限制
您可以根據實際需求決定是否開啟全量遷移速率限制。如果開啟,請設定 RPS(全量遷移階段每秒最多可以遷移至目標端的資料行數的最大值限制)和 BPS(全量遷移階段每秒最多可以遷移至目標端的資料量的最大值限制)。
說明此處設定的 RPS 和 BPS 僅作為限速限流能力,全量遷移實際可以達到的效能受限於源端、目標端、執行個體規格配置等因素的影響。
目標端表對象存在記錄時處理策略
處理策略包括 忽略 和 停止遷移:
選擇 忽略:當目標端表對象存在資料時,如果原資料與寫入資料衝突,資料轉送採用將衝突資料記錄日誌,保留原資料不變的策略進行資料寫入。
重要選擇 忽略,全量校正將使用 IN 模式拉取資料,無法校正目標端存在源端沒有的資料的情境,並且校正效能會有一定程度降級。
選擇預設值 停止遷移:當目標端表對象存在資料時,全量遷移會報錯不允許遷移,請處理好目標端資料後再繼續遷移。
重要如果出錯後單擊恢複,資料轉送將忽略該配置選項,繼續遷移表資料,請謹慎操作。
是否允許索引後置
您可以設定是否允許全量資料移轉完成後再建立索引,索引後置功能能夠縮短全量遷移耗時。選擇索引後置的注意事項,請參見表格下方的說明。
重要在 選擇遷移類型 頁面同時選中 結構遷移 和 全量遷移,才會顯示該參數。
僅非唯一鍵索引支援後置建立。
執行索引時,如果目標端 OceanBase 資料庫遇到下述報錯,資料轉送會進行忽略,預設索引建立成功,不會再重複建立。
OceanBase 資料庫 MySQL 租戶報錯
Duplicate key name。OceanBase 資料庫 Oracle 租戶報錯
name is already used by an existing object。
當目標端為 OceanBase 資料庫,並且此處選擇 允許 後,請進行下述配置:
單條索引 DDL 並發配置:並行度越高,資源消耗越大,遷移速度越快。
最大並發索引 DDL 數量配置:同一時刻,系統調用的後置索引 DDL 數量的最大值限制。
允許索引後置的情況下,建議您根據 OceanBase 資料庫的硬體條件和當前業務流量情況,通過黑屏用戶端工具調整以下業務租戶參數。
// 檔案記憶體緩衝區限制 alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; // V4.x 關閉限流 alter system set sys_bkgd_net_percentage = 100;增量同步處理
在 選擇遷移類型 頁面,選中 增量同步處理,才會顯示下述參數。

參數
描述
寫入並發配置
該參數用於配置增量同步處理階段往目標端寫入資料的並發數,最大限制為 512。並發數過高可能會造成目標端壓力過大,影響業務。
增量同步處理速率限制
您可以根據實際需求決定是否開啟增量同步處理速率限制。如果開啟,請設定 RPS(增量同步處理階段每秒最多可以同步至目標端的資料行數的最大值限制)和 BPS(增量同步處理階段每秒最多可以同步至目標端的資料量的最大值限制)。
說明此處設定的 RPS 和 BPS 僅作為限速限流能力,增量同步處理實際可以達到的效能受限於源端、目標端、執行個體規格配置等因素的影響。
增量同步處理起始位點
選擇遷移類型時未選擇 全量遷移,才顯示該參數。但源端為 PolarDB-O 時,不支援設定增量同步處理起始位點,起始位點預設為增量同步處理啟動時間。
反向增量
在 選擇遷移類型 頁面,選中 反向增量,才會顯示該地區的參數。反向增量的配置參數預設 複用增量同步處理配置。

您也可以取消複用增量同步處理配置,根據實際需求進行配置。
參數
描述
寫入並發配置
該參數用於配置反向增量階段往源端寫入資料的並發數,最大限制為 512。並發數過高可能會造成源端壓力過大,影響業務。
反向增量速率限制
您可以根據實際需求決定是否開啟反向增量速率限制。如果開啟,請設定 RPS(反向增量同步處理階段每秒最多可以同步至源端的資料行數的最大值限制)和 BPS(反向增量同步處理階段每秒最多可以同步至源端的資料量的最大值限制)。
說明此處設定的 RPS 和 BPS 僅作為限速限流能力,反向增量同步處理實際可以達到的效能受限於源端、目標端、執行個體規格配置等因素的影響。
增量同步處理起始位點
如果選擇遷移類型時已選擇 全量遷移,則不顯示該參數。
如果選擇遷移類型時未選擇 全量遷移,但選擇了 增量同步處理,則預設以正向切換(如有)為準,不支援修改。
進階選項
當目標端 OceanBase 資料庫 Oracle 租戶為 V4.3.0 及之後版本,並且在 選擇遷移類型 頁面,選中 結構遷移 或 增量同步處理 > DDL 同步,才會顯示該地區的參數。

目標端表Object Storage Service類型包括 預設、行存、列存 和 行列混存,該配置用於確定結構遷移或增量同步處理時目標端表對象的儲存類型,詳情請參見 default_table_store_format。
說明預設 選項是根據目標端參數配置自適應其他選項,是結構遷移的表對象或增量 DDL 的新增表對象根據設定的儲存類型寫入對應的結構。
單擊 預檢查,系統對資料移轉任務進行預檢查。
在 預檢查 環節,資料轉送會檢查資料庫使用者的讀寫權限、資料庫的網路連接等是否符合要求。全部檢查任務均通過後才能啟動資料移轉任務。如果預檢查報錯:
您可以在排查並處理問題後,重新執行預檢查,直至預檢查成功。
您也可以單擊錯誤預檢查項操作列中的 跳過,會彈出對話方塊提示您跳過本操作的具體影響,確認可以跳過後,請單擊對話方塊中的 確定。
預檢查成功後,單擊 啟動任務。
如果您暫時無需啟動任務,請單擊 儲存。後續您只能在 遷移工作清單 頁面手動啟動任務或通過大量操作啟動任務。大量操作的詳情請參見 大量操作資料移轉任務。資料移轉任務啟動後,會根據選擇的遷移類型依次執行,詳情請參見 查看遷移詳情。
資料轉送支援在資料移轉任務運行過程中減少遷移對象,詳情請參見 減少遷移對象。
說明PolarDB-O 資料庫至 OceanBase 資料庫 Oracle 租戶的資料移轉任務運行過程中不支援增加遷移對象。