遷移 OceanBase 數(shù)據(jù)庫 Oracle 租戶的增量數(shù)據(jù)至 MySQL 數(shù)據(jù)庫
本文為您介紹如何使用數(shù)據(jù)傳輸遷移 OceanBase 數(shù)據(jù)庫 Oracle 租戶的增量數(shù)據(jù)至 MySQL 數(shù)據(jù)庫。
如果數(shù)據(jù)遷移任務長期處于非活躍狀態(tài)(任務狀態(tài)為 失敗、已暫停 或 已完成),受增量日志保留時長等影響,任務可能無法恢復。數(shù)據(jù)傳輸將主動釋放處于非活躍狀態(tài)超過 3 天的數(shù)據(jù)遷移任務,以回收相關資源,建議您為任務配置告警并及時處理任務相關異常。
前提條件
數(shù)據(jù)傳輸已具備云資源訪問權限。詳情請參見 數(shù)據(jù)傳輸遷移角色授權。
已為源端 OceanBase 數(shù)據(jù)庫 Oracle 租戶和目標端 MySQL 數(shù)據(jù)庫創(chuàng)建專用于數(shù)據(jù)遷移任務的數(shù)據(jù)庫用戶,并為其賦予了相關權限。詳情請參見 創(chuàng)建數(shù)據(jù)庫用戶。
使用限制
數(shù)據(jù)傳輸支持的 MySQL 數(shù)據(jù)庫版本為 V5.5、V5.6、V5.7 和 V8.0。
數(shù)據(jù)傳輸不支持遷移 OceanBase 數(shù)據(jù)庫 Oracle 租戶的無主鍵表至 MySQL 數(shù)據(jù)庫。
目標端是數(shù)據(jù)庫的情況下,數(shù)據(jù)傳輸不支持目標端存在觸發(fā)器(Trigger)。如果存在觸發(fā)器,可能導致數(shù)據(jù)遷移失敗。
數(shù)據(jù)傳輸僅支持遷移庫名、表名和列名為 ASCII 碼且不包含特殊字符(包括換行、空格,以及 .|"'`()=;/&\)的對象。
注意事項
如果源端字符集為 UTF-8,建議目標端使用兼容源端的字符集(例如,UTF-8、UTF-16 等),避免因字符集不兼容導致目標端出現(xiàn)亂碼等問題。
節(jié)點之間的時鐘不同步,或者電腦終端和服務器之間的時鐘不同步,均可能導致延遲時間(增量同步/反向增量)不準確。
例如,如果時鐘早于標準時間,可能導致延遲時間為負數(shù)。如果時鐘晚于標準時間,可能導致延遲。
如果您變更目標端的唯一索引,需要重啟數(shù)據(jù)遷移任務,否則可能存在數(shù)據(jù)不一致的問題。
如果源端和目標端的表結構不完全一致,可能會出現(xiàn)數(shù)據(jù)不一致的情況。目前已知場景如下:
用戶手動創(chuàng)建表結構時,因超出數(shù)據(jù)傳輸?shù)闹С址秶赡軙a(chǎn)生隱式的轉換問題,導致源端和目標端列的類型不一致。
目標端的數(shù)據(jù)長度小于源端的數(shù)據(jù)長度時,可能出現(xiàn)數(shù)據(jù)截斷的情況,導致源端和目標端的數(shù)據(jù)不一致。
創(chuàng)建數(shù)據(jù)遷移任務時,您僅配置了 增量同步,數(shù)據(jù)傳輸要求源端數(shù)據(jù)庫的本地增量日志保存 48 小時以上。
如果源端或目標端存在僅大小寫不同的表對象,可能會因為源端或目標端大小寫不敏感導致數(shù)據(jù)遷移的結果不符合預期。
支持的源端和目標端實例類型
下表中,OceanBase 數(shù)據(jù)庫 Oracle 租戶簡稱為 OB_Oracle,支持的實例類型為 OceanBase 集群實例。
源端 | 目標端 |
OB_Oracle | MySQL(RDS 實例) |
OB_Oracle | MySQL(PolarDB 實例) |
OB_Oracle | MySQL(VPC 內自建數(shù)據(jù)庫) |
OB_Oracle | MySQL(數(shù)據(jù)庫網(wǎng)關) |
OB_Oracle | MySQL(公網(wǎng) IP 自建數(shù)據(jù)庫) |
操作步驟
登錄 OceanBase 管理控制臺,購買數(shù)據(jù)遷移任務。
詳情請參見 購買數(shù)據(jù)遷移任務。
在 數(shù)據(jù)傳輸 > 數(shù)據(jù)遷移 頁面,單擊新購買的數(shù)據(jù)遷移任務后的 配置。
如果您需要引用已有的任務配置信息,可以單擊 引用配置。詳情請參見 引用數(shù)據(jù)遷移任務配置。
在 選擇源和目標 頁面,配置各項參數(shù)。
參數(shù)
描述
遷移任務名稱
建議使用中文、數(shù)字和字母的組合。名稱中不能包含空格,長度不能超過 64 個字符。
源端
如果您已新建 OceanBase 數(shù)據(jù)庫 Oracle 租戶數(shù)據(jù)源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數(shù)據(jù)源,在右側對話框進行新建。參數(shù)詳情請參見 新建 OceanBase 數(shù)據(jù)源。
目標端
如果您已新建 MySQL 數(shù)據(jù)源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數(shù)據(jù)源,在右側對話框進行新建。參數(shù)詳情請參見 新建 MySQL 數(shù)據(jù)源。
標簽(可選)
單擊文本框,在下拉列表中選擇目標標簽。您也可以單擊 管理標簽 進行新建、修改和刪除。詳情請參見 通過標簽管理數(shù)據(jù)遷移任務。
單擊 下一步。在 選擇遷移類型 頁面,選擇當前數(shù)據(jù)遷移任務的遷移類型。
目前僅支持 增量同步 中的 DML 同步,您可以根據(jù)需求進行自定義配置。詳情請參見 自定義配置 DDL/DML。
單擊 下一步。在 選擇遷移對象 頁面,選擇當前數(shù)據(jù)遷移任務的遷移對象。
您可以通過 指定對象 和 匹配規(guī)則 兩個入口選擇遷移對象。本文為您介紹通過 指定對象 方式選擇遷移對象的具體操作,配置匹配規(guī)則的詳情請參見 配置匹配規(guī)則。
重要待遷移的表名和其中的列名不能包含中文字符。
當數(shù)據(jù)庫的庫名或表名存在“$$”字符時,會影響數(shù)據(jù)遷移任務的創(chuàng)建。
在 選擇遷移對象 區(qū)域,選中 指定對象。
在 選擇遷移范圍 區(qū)域的 源端對象 列表選中需要遷移的對象。您可以選擇一個或多個庫的表、視圖作為遷移對象。
單擊 >,將其添加至 目標端對象 列表中。
數(shù)據(jù)傳輸支持通過文本導入對象,并支持對目標端對象進行重命名、設置行過濾、查看列信息,以及移除單個或全部遷移對象等操作。
說明通過 匹配規(guī)則 方式選擇遷移對象時,重命名能力由匹配規(guī)則語法覆蓋,操作處僅支持設置過濾條件。詳情請參見 配置匹配規(guī)則。
操作
步驟
導入對象
在選擇區(qū)域的右側列表中,單擊右上角的 導入對象。
在對話框中,單擊 確定。
重要導入會覆蓋之前的操作選擇,請謹慎操作。
在 導入遷移對象 對話框中,導入需要遷移的對象。
您可以通過導入 CSV 文件的方式進行庫表重命名、設置行過濾條件等操作。詳情請參見 下載和導入遷移對象配置。
單擊 檢驗合法性。
完成遷移對象導入后,請先檢驗合法性。目前暫不支持列字段映射。
通過檢驗后,單擊 確定。
重命名
數(shù)據(jù)傳輸支持重命名遷移對象的名稱,詳情請參見 數(shù)據(jù)庫庫表重命名。
設置
數(shù)據(jù)傳輸支持
WHERE
條件實現(xiàn)行過濾,詳情請參見 SQL 條件過濾數(shù)據(jù)。您還可以在 查看列 區(qū)域,查看遷移對象的列信息。
移除/全部移除
數(shù)據(jù)傳輸支持在數(shù)據(jù)映射時,對暫時選中到目標端的單個或多個對象進行移除操作。
移除單個遷移對象
在選擇區(qū)域的右側列表中,鼠標懸停至目標對象,單擊顯示的 移除,即可移除該遷移對象。
移除全部遷移對象
在選擇區(qū)域的右側列表中,單擊右上角的 全部移除。在對話框中,單擊 確定,即可移除全部遷移對象。
單擊 下一步。在 遷移選項 頁面, 配置 增量同步 的各項參數(shù)。
參數(shù)
描述
寫入并發(fā)配置
該參數(shù)用于配置增量同步階段往目標端寫入數(shù)據(jù)的并發(fā)數(shù),最大限制為 512。并發(fā)數(shù)過高可能會造成目標端壓力過大,影響業(yè)務。
增量同步速率限制
您可以根據(jù)實際需求決定是否開啟增量同步速率限制。如果開啟,請設置 RPS(增量同步階段每秒最多可以同步至目標端的數(shù)據(jù)行數(shù)的最大值限制)和 BPS(增量同步階段每秒最多可以同步至目標端的數(shù)據(jù)量的最大值限制)。
說明此處設置的 RPS 和 BPS 僅作為限速限流能力,增量同步實際可以達到的性能受限于源端、目標端、實例規(guī)格配置等因素的影響。
增量同步起始位點
請在此處指定遷移某個時間節(jié)點之后的數(shù)據(jù),默認為當前系統(tǒng)時間。詳情請參見 設置增量同步位點。
單擊 預檢查,系統(tǒng)對數(shù)據(jù)遷移任務進行預檢查。
在 預檢查 環(huán)節(jié),數(shù)據(jù)傳輸會檢查數(shù)據(jù)庫用戶的讀寫權限、數(shù)據(jù)庫的網(wǎng)絡連接等是否符合要求。全部檢查任務均通過后才能啟動數(shù)據(jù)遷移任務。如果預檢查報錯:
您可以在排查并處理問題后,重新執(zhí)行預檢查,直至預檢查成功。
您也可以單擊錯誤預檢查項操作列中的 跳過,會彈出對話框提示您跳過本操作的具體影響,確認可以跳過后,請單擊對話框中的 確定。
預檢查成功后,單擊 啟動任務。
如果您暫時無需啟動任務,請單擊 保存。后續(xù)您只能在 遷移任務列表 頁面手動啟動任務或通過批量操作啟動任務。批量操作的詳情請參見 批量操作數(shù)據(jù)遷移任務。
數(shù)據(jù)傳輸支持在數(shù)據(jù)遷移任務運行過程中修改遷移對象及其行過濾條件,詳情請參見 查看和修改遷移對象及其過濾條件。數(shù)據(jù)遷移任務啟動后,會根據(jù)所選擇的遷移類型依次執(zhí)行,詳情請參見 查看遷移詳情。