OceanBase 從通過數(shù)據(jù)庫網(wǎng)關(guān)接入的自建Oracle遷移至OceanBase Oracle

2021-06-04 11:08 更新

本文檔為您展示通過 OceanBase 數(shù)據(jù)遷移功能將數(shù)據(jù)庫從自建 Oracle 遷移至 OceanBase Oracle 的操作步驟。OceanBase 數(shù)據(jù)遷移功能支持結(jié)構(gòu)遷移、全量數(shù)據(jù)遷移和增量數(shù)據(jù)同步,保證您在切換數(shù)據(jù)庫之前的數(shù)據(jù)庫遷移環(huán)節(jié)快速、穩(wěn)定,業(yè)務(wù)幾乎無感知。

前提條件

  • 源端 Oracle 數(shù)據(jù)庫已通過數(shù)據(jù)庫網(wǎng)關(guān)接入阿里云。操作步驟請參考 快速入門。

  • 已為源端自建 Oracle 數(shù)據(jù)庫和目標(biāo)端 OceanBase Oracle 數(shù)據(jù)庫創(chuàng)建了專用于數(shù)據(jù)遷移任務(wù)的數(shù)據(jù)庫用戶,并為其賦予了相關(guān)權(quán)限。

  • 已在目標(biāo)端 OceanBase Oracle 數(shù)據(jù)庫中創(chuàng)建了對應(yīng)的數(shù)據(jù)庫。OceanBase 數(shù)據(jù)遷移功能支持表和列的遷移,不支持庫的遷移,您需要提前在目標(biāo)端創(chuàng)建對應(yīng)的數(shù)據(jù)庫。

  • 已創(chuàng)建了源端和目標(biāo)端的數(shù)據(jù)源。

注意事項(xiàng)

數(shù)據(jù)遷移只會將源庫的數(shù)據(jù)(結(jié)構(gòu))復(fù)制一份到目標(biāo)數(shù)據(jù)庫,并不會對源庫的數(shù)據(jù)(結(jié)構(gòu))造成影響。啟動遷移任務(wù)之前,OceanBase 數(shù)據(jù)遷移功能會自動對源端數(shù)據(jù)庫和目標(biāo)端數(shù)據(jù)庫執(zhí)行數(shù)據(jù)遷移的預(yù)檢查,為保證預(yù)檢查順利執(zhí)行,請先確認(rèn)以下信息:

  • 自建 Oracle 數(shù)據(jù)庫版本必須是 11gR2 版本、12c 或 18c 的非 CDB 版本。

  • 需要保證源端和目標(biāo)端數(shù)據(jù)庫的時鐘同步。

  • 源端為 Oracle 數(shù)據(jù)庫,字符集必須是 UTF16、UTF8 或 GBK。

  • 源端表的數(shù)據(jù)類型目前只支持 bigint、varchar、tinyint、text、int、timestamp、blob、datetime、decimal、mediumblob、date、time、bit、char 和 binary。

遷移類型和遷移對象

遷移類型

遷移對象

結(jié)構(gòu)遷移

在結(jié)構(gòu)遷移中,OceanBase 數(shù)據(jù)遷移功能將源庫中的表和列遷移到 OceanBase 目標(biāo)庫中。

說明 

OceanBase 數(shù)據(jù)遷移功能會自動過濾不支持遷移數(shù)據(jù)庫對象。另外,請確認(rèn)待遷移的數(shù)據(jù)中沒有分區(qū)表和無主鍵表,否則預(yù)檢查環(huán)節(jié)會提示報錯。

全量遷移

在全量數(shù)據(jù)遷移過程中,當(dāng)源庫不斷有業(yè)務(wù)寫入時,在全量數(shù)據(jù)遷移完成之前 OceanBase 數(shù)據(jù)遷移功能會啟動增量拉取模塊以拉取源實(shí)例中的增量更新數(shù)據(jù),對之進(jìn)行解析和封裝并存儲在 OMS 中。

源端為 MySQL 數(shù)據(jù)庫,不支持遷移 trigger、event、和routine。

增量同步

全量遷移過程開始后,將源庫中發(fā)生變化的數(shù)據(jù)(新增、修改或刪除)同步到 OceanBase 中對應(yīng)的表里。在增量數(shù)據(jù)同步追平后,OceanBase 數(shù)據(jù)遷移功能會維護(hù)源庫到目標(biāo)庫的實(shí)時數(shù)據(jù)同步鏈路。

增量數(shù)據(jù)遷移支持同步的 SQL 操作:

  • DML:INSERT、UPDATE、DELETE、REPLACE。

  • DDL:不支持。

數(shù)據(jù)庫用戶權(quán)限

數(shù)據(jù)庫

結(jié)構(gòu)遷移

全量遷移

增量同步

自建 Oracle 數(shù)據(jù)庫

schema 的 owner 權(quán)限

schema 的 owner 權(quán)限

schema 的 owner 權(quán)限

OceanBase Oracle 實(shí)例

對業(yè)務(wù)數(shù)據(jù)庫具備創(chuàng)建表、創(chuàng)建索引和創(chuàng)建約束的權(quán)限。

對業(yè)務(wù)數(shù)據(jù)庫具備 INSERT 權(quán)限。

對業(yè)務(wù)數(shù)據(jù)庫具備 INSERT、UPDATE、DELETE 權(quán)限。

操作步驟

  1. 登錄 OceanBase 控制臺。

  2. 在左側(cè)導(dǎo)航欄中單擊數(shù)據(jù)傳輸>項(xiàng)目列表。

  3. 在頁面右上角單擊創(chuàng)建遷移項(xiàng)目。

    1. 指定源端與目標(biāo)端。

      指定源端、目標(biāo)端和遷移項(xiàng)目使用的作業(yè)實(shí)例,并單擊下一步。

      配置

      說明

      源端名稱

      源終端節(jié)點(diǎn)名稱。如果沒有合適的待選節(jié)點(diǎn),單擊新建源終端節(jié)點(diǎn)創(chuàng)建一個源終端節(jié)點(diǎn)。

      目標(biāo)端名稱

      目標(biāo)端節(jié)點(diǎn)的名稱。如果沒有合適的待選節(jié)點(diǎn),單擊新建目標(biāo)端創(chuàng)建一個目標(biāo)端節(jié)點(diǎn)。

      作業(yè)實(shí)例

      處理遷移項(xiàng)目所用的作業(yè)實(shí)例。如果沒有合適的作業(yè)實(shí)例,單擊新建作業(yè)實(shí)例,創(chuàng)建一個新的作業(yè)實(shí)例。新建的作業(yè)實(shí)例需 1~3 分鐘才能生效。

      項(xiàng)目名稱

      當(dāng)前遷移項(xiàng)目的項(xiàng)目名稱。系統(tǒng)會自動為您擬定一個項(xiàng)目名稱,由源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)名稱自動生成。

      說明 

      系統(tǒng)會自動檢查源端和目標(biāo)端節(jié)點(diǎn)的數(shù)據(jù)庫網(wǎng)絡(luò)連通性,如果顯示 數(shù)據(jù)連通性 表示網(wǎng)絡(luò)連通。

      OceanBase自建2ob指定源端和目標(biāo)端

    2. 指定遷移類型及對象。

      指定遷移類型,并在左側(cè)源端數(shù)據(jù)庫中勾選需要遷移或同步的對象,將其添加到右側(cè)的目標(biāo)端數(shù)據(jù)庫中。

      OceanBase創(chuàng)建遷移項(xiàng)目-設(shè)置遷移對象

      確認(rèn)是否開啟高級設(shè)置。

      配置

      說明

      增量記錄保留時間

      增量事務(wù)語句緩存在作業(yè)實(shí)例的最大時間。支持設(shè)置的范圍為 1~2400 小時,默認(rèn)為 72 小時。

      此選項(xiàng)選擇過大時會影響作業(yè)實(shí)例的磁盤空間。

      全量遷移并發(fā)數(shù)

      全量遷移的并發(fā)數(shù)量。支持設(shè)置的范圍為 1~256 個,默認(rèn)為 16 個。并發(fā)量越高,全量遷移速度越快。

      OceanBase創(chuàng)建遷移項(xiàng)目-高級設(shè)置

    3. 確認(rèn)信息無誤后,單擊預(yù)檢查

      預(yù)檢查階段會對源端表的數(shù)據(jù)類型等方面進(jìn)行全量檢查,只有通過預(yù)檢查才能成功創(chuàng)建遷移任務(wù)。

      OceanBase創(chuàng)建千億項(xiàng)目-預(yù)檢查

  4. 確認(rèn)無誤后,單擊啟動

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號