全部產品
Search
文件中心

ApsaraDB for OceanBase:同步 OceanBase 資料庫 MySQL 租戶的資料至 AnalyticDB MySQL

更新時間:Oct 17, 2024

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

背景資訊

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

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

前提條件

使用限制

  • 資料轉送支援的 AnalyticDB MySQL 版本為 V3.0。

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

注意事項

  • 當 OceanBase 資料庫 V4.x 進行增量同步處理時,如果產生列沒有標記 STORED 屬性,則同步目標端時該列將同步為 NULL 值,導致下遊接收該列資料時不符合預期。

  • 節點之間的時鐘不同步,或者電腦終端和伺服器之間的時鐘不同步,均可能導致增量同步處理的延遲時間不準確。

    例如,如果時鐘早於標準時間,可能導致延遲時間為負數。如果時鐘晚於標準時間,可能導致延遲。

  • 同步 OceanBase 資料庫 MySQL 租戶的資料至 AnalyticDB MySQL 版時,關於索引的處理如下:

    • 同步有主鍵表時,刪除其他所有索引。

    • 同步有非空唯一鍵索引的無主鍵表時,使用第一個非空唯一索引作為主鍵,刪除其他所有索引。

    • 不支援同步無非空唯一鍵索引的無主鍵表。

  • 當源端/目標端中存在 TIMESTAMP 時間類型,且該時間處於夏令時的規定時間範圍時,因為源端/目標端對時間格式的處理方式不一致,可能導致源端資料寫入目標端產生不一致的問題,存在一個小時的時差。

    例如,源端/目標端設定 TIMEZONE 為 "+8:00" 後,OceanBase 資料庫 MySQL 租戶查詢結果為非夏令時時間,AnalyticDB MySQL 查詢結果為夏令時時間。AnalyticDB MySQL 比 OceanBase 資料庫 MySQL 租戶快一個小時。

  • 如果在建立資料同步任務時,您僅配置了 增量同步處理,資料轉送要求源端資料庫的本地增量日誌儲存 48 小時以上。

    如果在建立資料同步任務時,您配置了 全量同步+增量同步處理,資料轉送要求源端資料庫的本地增量日誌至少保留 7 天以上。否則資料轉送可能因無法擷取增量日誌而導致資料同步任務失敗,甚至導致源端和目標端資料不一致。

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

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

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

源端

目標端

OB_MySQL(OceanBase 叢集執行個體)

AnalyticDB MySQL

OB_MySQL(Serverless 執行個體)

AnalyticDB MySQL

資料類型映射

OceanBase 資料庫 MySQL 租戶資料類型

AnalyticDB MySQL 版 V3.0 資料類型

BIGINT

BIGINT

BINARY

VARBINARY

BIT

VARBINARY

BLOB

VARBINARY

CHAR

VARCHAR

DATE

DATE

DATETIME

DATETIME

DECIMAL

DECIMAL(p,s) p: 1~1000 s<=p

DOUBLE

DOUBLE

ENUM

VARCHAR

FLOAT

FLOAT

INT

INT

INTEGER

INT

LONGBLOB

VARBINARY

LONGTEXT

VARCHAR

MEDIUMBLOB

VARBINARY

MEDIUMTEXT

VARCHAR

NUMERIC

DECIMAL

SET

VARCHAR

SMALLINT

SMALLINT

TEXT

VARCHAR

TIME

TIME

TIMESTAMP

TIMESTAMP

TINYBLOB

VARBINARY

TINYINT

TINYINT

TINYTEXT

VARCHAR

VARBINARY

VARBINARY

VARCHAR

VARCHAR

YEAR

BIGINT

操作步驟

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

    詳情請參見 購買資料同步任務

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

    image.png

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

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

    參數

    描述

    同步任務名稱

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

    標籤

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

    源端

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

    重要

    源端僅支援 OceanBase 資料庫的 執行個體類型OceanBase 叢集執行個體

    目標端

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

  4. 單擊 下一步。在 選擇同步類型 頁面,選擇當前資料同步任務的同步類型。

    image

    同步類型包括 結構同步全量同步增量同步處理增量同步處理 包括 DML 同步(包括 Insert、Delete 和 Update) 和 DDL 同步,您可以根據需求進行自訂配置。詳情請參見 自訂配置 DDL/DML,DDL 同步的支援範圍請參見 DDL 同步範圍

  5. 單擊 下一步。在 選擇同步對象 頁面,選擇當前資料同步任務需要同步的對象。

    您可以通過 指定對象匹配規則 兩個入口選擇遷移對象。

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

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

    • 如果您在 選擇同步類型 步驟已勾選 DDL 同步,建議通過匹配規則方式選擇同步對象,以確保所有符合約步對象規則的新增對象都將被同步。如果您通過指定對象方式選擇同步對象,則新增對象或重新命名後的對象將不會被同步。

    • 選擇 指定對象,在左側選中需要同步的對象,單擊 >,將其添加至右側列表中。您可以選擇一個或多個庫的表作為同步對象。

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

      說明

      通過 匹配規則 方式選擇同步對象時,重新命名能力由匹配規則文法覆蓋,操作處僅支援設定過濾條件,以及選擇分區列和需要同步的列。詳情請參見 配置匹配規則

      image.png

      操作

      步驟

      匯入對象

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

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

        重要

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

      3. 匯入同步對象 對話方塊中,匯入需要匯入的對象。

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

      4. 單擊 檢驗合法性

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

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

      重新命名

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

      設定

      資料轉送支援 where 條件實現行過濾、選擇需要同步的列,以及設定主鍵列、分布鍵和分區鍵等。

      1. 在選擇地區的右側列表中,滑鼠移至上方至目標對象。

      2. 單擊顯示的 設定

      3. 設定 對話方塊中,您可以進行以下操作:

        • 輸入標準的 SQL 陳述式中的 WHERE 子句,來配置行過濾。詳情請參見 SQL 條件過濾資料

        • 重新設定主鍵列。

          預設展示當前表的主鍵列(可以是多列)。您可以刪除現有的主鍵列,通過單擊下拉或搜尋的方式,重新設定主鍵列(支援多列)。

        • 設定分布鍵(可選)。

        • 設定分區鍵。如果您開啟了設定分區鍵,則需要:

          • 分區鍵運算式 文字框中輸入運算式。例如,PARTITION BY VALUE('id')

          • 設定生命週期。生命週期用於分區管理,對分區進行排序,超出 N 的分區將被過濾。

      4. 單擊 確定

      移除/全部移除

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

      • 移除單個同步對象

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

      • 移除全部同步對象

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

    • 選擇 匹配規則,詳情請參見 配置匹配規則

  6. 單擊 下一步。在 同步選項 頁面,配置各項參數。

    • 全量同步

      選擇同步類型 頁面,選中 全量同步,才會顯示下述參數。

      image

      參數

      描述

      讀取並發配置

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

      寫入並發配置

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

      全量同步速率限制

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

      說明

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

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

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

        重要

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

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

        重要

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

    • 增量同步處理

      選擇同步類型 頁面,選中 增量同步處理,才會顯示下述參數。

      image

      參數

      描述

      寫入並發配置

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

      增量同步處理速率限制

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

      說明

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

      增量同步處理起始位點

      • 如果選擇同步類型時已選擇 全量同步,該參數不會顯示。

      • 如果選擇同步類型時未選擇 全量同步,但選擇了 增量同步處理,請在此處指定同步某個時間節點之後的資料,預設為當前系統時間。詳情請參見 設定增量同步處理位點

  7. 單擊 預檢查

    預檢查 環節,資料轉送會檢測和目標端的串連情況。如果預檢查報錯:

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

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

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

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

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

如果資料同步任務運行報錯(通常由於網路不通或進程啟動過慢導致),您可以在資料同步任務的列表或詳情頁面,單擊 恢複

相關文檔