全部產品
Search
文件中心

ApsaraDB for OceanBase (Deprecated):遷移 AnalyticDB MySQL 的資料至 OceanBase 資料庫 MySQL 租戶

更新時間:Jan 23, 2025

本文為您介紹如何遷移雲原生資料倉儲 AnalyticDB MySQL 版的資料至 OceanBase 資料庫 MySQL 租戶。

重要

如果資料移轉任務長期處於非活躍狀態(任務狀態為 失敗已暫停已完成),受增量日誌保留時間長度等影響,任務可能無法恢複。資料轉送將主動釋放處於非活躍狀態超過 3 天的資料移轉任務,以回收相關資源,建議您為任務配置警示並及時處理任務相關異常。

背景資訊

  • AnalyticDB MySQL 版的基本介紹請參見 基礎資料類型

  • AnalyticDB MySQL 版的建表、分區表和分布表的詳情請參見 CREATE TABLE

前提條件

  • 資料轉送已具備雲資源存取權限。詳情請參見 資料轉送遷移角色授權

  • 已為源端 AnalyticDB MySQL 版建立專用於資料移轉任務的帳號。詳情請參見 ADB 資料來源

  • 已為目標端 OceanBase 資料庫 MySQL 租戶建立專用於資料移轉任務的資料庫使用者,並為其賦予了相關許可權。詳情請參見 建立資料庫使用者

使用限制

  • 源端資料庫的操作限制

    請勿在全量遷移階段執行庫或表結構變更的 DDL 操作,否則可能造成資料移轉任務中斷。

  • 目前支援的 AnalyticDB MySQL 版本為 V3.0。

  • 目標端是資料庫的情況下,資料轉送不支援目標端存在觸發器(Trigger)。如果存在觸發器,可能導致資料移轉失敗。

  • 資料轉送僅支援遷移庫名、表名和列名為 ASCII 碼且不包含特殊字元(包括換行、空格,以及 .|"'`()=;/&\)的對象。

  • 資料轉送暫不支援全量校正。請在全量遷移完成後自行確認資料的正確性,避免在遷移過程中遺失資料。

注意事項

  • 如果源端字元集為 UTF-8,建議目標端使用相容源端的字元集(例如,UTF-8、UTF-16 等),避免因字元集不相容導致目標端出現亂碼等問題。

  • 請確認資料轉送對 DECIMAL、FLOAT 或 DOUBLE 等列類型的遷移精度是否符合預期。如果目標端欄位類型的精度小於源端欄位類型的精度,則可能發生截斷現象,導致源端和目標端的資料不一致。

  • 如果您變更目標端的唯一索引,需要重啟資料移轉任務,否則可能存在資料不一致的問題。

  • 如果源端或目標端存在僅大小寫不同的表對象,可能會因為源端或目標端大小寫不敏感導致資料移轉的結果不符合預期。

資料類型映射

AnalyticDB MySQL V3.0

AnalyticDB MySQL 說明

OceanBase 資料庫 MySQL 租戶

BOOLEAN

值只能是 0 或 1,儲存位元組數為 1 位元位。

  • 取值為 0,表示 false。

  • 取值為 1,表示 true。

BOOLEAN

TINYINT

取值範圍為 -128~127,儲存位元組數為 1 位元組。

TINYINT

SMALLINT

取值範圍為 -32768~32767,儲存位元組數為 2 位元組。

SMALLINT

INT 或 INTEGER

取值範圍為 -2147483648~2147483647,儲存位元組數為 4 位元組。

INT 或 INTEGER

BIGINT

取值範圍為 -9223372036854775808~9223372036854775807,儲存位元組數為 8 位元組。

BIGINT

FLOAT

取值範圍為 -3.402823466E+38~-1.175494351E-38, 0, 1.175494351E-38~3.402823466E+38,IEEE 標準,儲存位元組數為 4 位元組。

FLOAT

DOUBLE

取值範圍為 -1.7976931348623157E+308~-2.2250738585072014E-308, 0, 2.2250738585072014E-308~1.7976931348623157E+308,IEEE 標準,儲存位元組數為 8 位元組。

DOUBLE

DECIMAL(m,d) 或 NUMERIC

m 是數值的最大精度,取值範圍為 1~1000;d 是小數點右側數位位元,要求 d≤m。

DECIMAL(m,d)

VARCHAR(n)

有儲存位元組數最大為 16MB,使用時無需指定儲存長度。

非主鍵列與索引列:VARCHAR(4094)

主鍵列與索引列:MEDIUMTEXT

BINARY(n)

非主鍵列與索引列:VARBINARY(4094)

主鍵列與索引列:MEDIUMBLOB

DATE

取值範圍為 '0001-01-01'~'9999-12-31',支援的資料格式為 'YYYY-MM-DD',儲存位元組數為 4 位元組。

DATE

TIME

取值範圍為 '00:00:00'~'23:59:59',支援的資料格式為 'HH:MM:SS',儲存位元組數為 8 位元組。

TIME(3)

DATETIME

取值範圍為 '0001-01-01 00:00:00.000'UTC~'9999-12-31 23:59:59.999'UTC,支援的資料格式為 'YYYY-MM-DD HH:MM:SS',儲存位元組數為 8 位元組。

DATETIME(3)

TIMESTAMP

時間戳記類型,取值範圍為 '0100-01-01 00:00:00.000'UTC~'9999-12-31 23:59:59.999'UTC,支援的資料格式為 'YYYY-MM-DD HH:MM:SS',儲存位元組數為 8 位元組。

TIMESTAMP(3)

POINT

地理座標,由座標經度 X 和緯度 Y 組成。

POINT

JSON

JSON

支援的源端和目標端執行個體類型

下表中,OceanBase 資料庫 MySQL 租戶簡稱為 OB_MySQL。

源端

目標端

AnalyticDB MySQL

OB_MySQL(OceanBase 叢集執行個體)

AnalyticDB MySQL

OB_MySQL(VPC 內自建資料庫)

操作步驟

  1. 登入 OceanBase 管理主控台,購買資料移轉任務。

    詳情請參見 購買資料移轉任務

  2. 資料轉送 > 資料移轉 頁面,單擊新購買的資料移轉任務後的 配置

    image.png

    如果您需要引用已有的任務配置資訊,可以單擊 引用配置。詳情請參見 引用資料移轉任務配置

  3. 選擇源和目標 頁面,配置各項參數。

    參數

    描述

    遷移任務名稱

    建議使用中文、數字和字母的組合。名稱中不能包含空格,長度不能超過 64 個字元。

    源端

    如果您已建立 ADB 資料來源,請從下拉式清單中進行選擇。如果未建立,請單擊下拉式清單中的 建立資料來源,在右側對話方塊進行建立。參數詳情請參見 建立 ADB 資料來源

    目標端

    如果您已建立 OceanBase 資料庫 MySQL 租戶資料來源,請從下拉式清單中進行選擇。如果未建立,請單擊下拉式清單中的 建立資料來源,在右側對話方塊進行建立。參數詳情請參見 建立 OceanBase 資料來源

    標籤(可選)

    單擊文字框,在下拉式清單中選擇目標標籤。您也可以單擊 管理標籤 進行建立、修改和刪除。詳情請參見 通過標籤管理資料移轉任務

  4. 單擊 下一步。在 選擇遷移類型 頁面,選擇 全量遷移

    全量遷移任務開始後,資料轉送會將源端庫表的存量資料移轉至目標端資料庫對應的表中。目前遷移類型僅支援全量遷移。

    image

  5. 單擊 下一步。在 選擇遷移對象 頁面,選擇當前資料移轉任務的遷移對象。

    您可以通過 指定對象匹配規則 兩個入口選擇遷移對象。本文為您介紹通過 指定對象 方式選擇遷移對象的具體操作,配置匹配規則的詳情請參見 配置和修改匹配規則

    重要
    • 待遷移的表名和其中的列名不能包含中文字元。

    • 當資料庫的庫名或表名存在“$$”字元時,會影響資料移轉任務的建立。

    image.png

    1. 選擇遷移對象 地區,選中 指定對象

    2. 選擇遷移範圍 地區的 源端對象 列表選中需要遷移的對象。您可以選擇一個或多個庫的表、視圖作為遷移對象。

    3. 單擊 >,將其添加至 目標端對象 列表中。

    資料轉送支援通過文本匯入對象,並支援對目標端對象進行重新命名、設定行過濾、查看列資訊,以及移除單個或全部遷移對象等操作。

    說明

    通過 匹配規則 方式選擇遷移對象時,重新命名能力由匹配規則文法覆蓋,操作處僅支援設定過濾條件。詳情請參見 配置和修改匹配規則

    操作

    步驟

    匯入對象

    1. 在選擇地區的右側列表中,單擊右上方的 匯入對象

    2. 在對話方塊中,單擊 確定

      重要

      匯入會覆蓋之前的操作選擇,請謹慎操作。

    3. 匯入遷移對象 對話方塊中,匯入需要遷移的對象。

      您可以通過匯入 CSV 檔案的方式進行庫表重新命名、設定行過濾條件等操作。詳情請參見 下載和匯入遷移對象配置

    4. 單擊 檢驗合法性

      完成遷移對象匯入後,請先檢驗合法性。目前暫不支援欄欄位映射。

    5. 通過檢驗後,單擊 確定

    重新命名

    資料轉送支援重新命名遷移對象的名稱,詳情請參見 資料庫庫表重新命名

    設定

    資料轉送支援 WHERE 條件實現行過濾,詳情請參見 SQL 條件過濾資料

    您還可以在 查看列 地區,查看遷移對象的列資訊。

    移除/全部移除

    資料轉送支援在資料對應時,對暫時選中到目標端的單個或多個對象進行移除操作。

    • 移除單個遷移對象

      在選擇地區的右側列表中,滑鼠移至上方至目標對象,單擊顯示的 移除,即可移除該遷移對象。

    • 移除全部遷移對象

      在選擇地區的右側列表中,單擊右上方的 全部移除。在對話方塊中,單擊 確定,即可移除全部遷移對象。

  6. 單擊 下一步。在 遷移選項 頁面,配置全量遷移的各項參數。

    image

    參數

    描述

    讀取並發配置

    該參數用於配置全量遷移階段從源端讀取資料的並發數,最大限制為 512。並發數過高可能會造成源端壓力過大,影響業務。

    寫入並發配置

    該參數用於配置全量遷移階段往目標端寫入資料的並發數,最大限制為 512。並發數過高可能會造成目標端壓力過大,影響業務。

    全量遷移速率限制

    您可以根據實際需求決定是否開啟全量遷移速率限制。如果開啟,請設定 RPS(全量遷移階段每秒最多可以遷移至目標端的資料行數的最大值限制)和 BPS(全量遷移階段每秒最多可以遷移至目標端的資料量的最大值限制)。

    說明

    此處設定的 RPS 和 BPS 僅作為限速限流能力,全量遷移實際可以達到的效能受限於源端、目標端、執行個體規格配置等因素的影響。

    目標端表對象存在記錄時處理策略

    處理策略包括 忽略停止遷移

    • 選擇 忽略:當目標端表對象存在資料時,如果原資料與寫入資料衝突,資料轉送採用將衝突資料記錄日誌,保留原資料不變的策略進行資料寫入。

      重要

      選擇 忽略,全量校正將使用 IN 模式拉取資料,無法校正目標端存在源端沒有的資料的情境,並且校正效能會有一定程度降級。

    • 選擇預設值 停止遷移:當目標端表對象存在資料時,全量遷移會報錯不允許遷移,請處理好目標端資料後再繼續遷移。

      重要

      如果出錯後單擊恢複,資料轉送將忽略該配置選項,繼續遷移表資料,請謹慎操作。

  7. 單擊 預檢查,系統對資料移轉任務進行預檢查。

    預檢查 環節,資料轉送會檢查資料庫使用者的讀寫權限、資料庫的網路連接等是否符合要求。全部檢查任務均通過後才能啟動資料移轉任務。如果預檢查報錯:

    • 您可以在排查並處理問題後,重新執行預檢查,直至預檢查成功。

    • 您也可以單擊錯誤預檢查項操作列中的 跳過,會彈出對話方塊提示您跳過本操作的具體影響,確認可以跳過後,請單擊對話方塊中的 確定

  8. 預檢查成功後,單擊 啟動任務

    如果您暫時無需啟動任務,請單擊 儲存。後續您只能在 遷移工作清單 頁面手動啟動任務或通過大量操作啟動任務。大量操作的詳情請參見 大量操作資料移轉任務

    資料轉送支援在資料移轉任務運行過程中修改遷移對象及其行過濾條件,詳情請參見 查看和修改遷移對象及其過濾條件。資料移轉任務啟動後,會根據所選擇的遷移類型依次執行,詳情請參見 查看遷移詳情

相關文檔