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

2021-06-29 18:02 更新

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

前提條件

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

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

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

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

  • 已為自建 MySQL 數(shù)據(jù)庫(kù)開(kāi)啟了 Binlog。

注意事項(xiàng)

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

  • 自建 MySQL 數(shù)據(jù)庫(kù)版本必須是 5.6 或 5.7版本。

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

  • MySQL 數(shù)據(jù)庫(kù)的存儲(chǔ)引擎為 InnoDB。

  • 源端為 MySQL 數(shù)據(jù)庫(kù),字符集必須是 UTF8、UTF8MB4 和 GBK。

遷移類(lèi)型和遷移對(duì)象

遷移類(lèi)型

遷移對(duì)象

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

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

說(shuō)明 

OceanBase 數(shù)據(jù)遷移功能會(huì)自動(dòng)過(guò)濾不支持遷移數(shù)據(jù)庫(kù)對(duì)象。另外,請(qǐng)確認(rèn)待遷移的數(shù)據(jù)中沒(méi)有分區(qū)表和無(wú)主鍵表,否則預(yù)檢查環(huán)節(jié)會(huì)提示報(bào)錯(cuò)。

全量遷移

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

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

增量同步

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

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

  • DML:INSERT、UPDATE、DELETE、REPLACE。

  • DDL:不支持。

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

數(shù)據(jù)庫(kù) 結(jié)構(gòu)遷移 全量遷移 增量同步
自建 MySQL 數(shù)據(jù)庫(kù) SELECT 權(quán)限 SELECT 權(quán)限 REPLICATION SLAVE、REPLICATION CLIENT、SHOW VIEW和SELECT權(quán)限

OceanBase MySQL 實(shí)例

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

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

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

操作步驟

  1. 登錄 OceanBase 控制臺(tái)。

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

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

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

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

      配置

      說(shuō)明

      源端名稱(chēng)

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

      目標(biāo)端名稱(chēng)

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

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

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

      項(xiàng)目名稱(chēng)

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

      說(shuō)明 

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

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

    2. 指定遷移類(lèi)型及對(duì)象。

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

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

      確認(rèn)是否開(kāi)啟高級(jí)設(shè)置。

      配置

      說(shuō)明

      增量記錄保留時(shí)間

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

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

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

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

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

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

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

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

  4. 確認(rèn)無(wú)誤后,單擊啟動(dòng)


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)