使用數(shù)據(jù)庫同步中間件DBSyncer實現(xiàn)不同數(shù)據(jù)庫的數(shù)據(jù)同步
有去O(ORACLE數(shù)據(jù)庫)、信創(chuàng)、國產(chǎn)化數(shù)據(jù)庫等項目實踐的同學(xué)應(yīng)該都遇到過不同數(shù)據(jù)庫之前進(jìn)行數(shù)據(jù)遷移的問題,雖然有各種工具可以實現(xiàn),但是有些工具的部署、使用比較復(fù)雜,也有些工具遷移數(shù)據(jù)效率很低。本文將介紹一款開源且部署、使用簡單、遷移相對高效的數(shù)據(jù)庫中間件DBSyncer來進(jìn)行數(shù)據(jù)遷移。該工具支持Oracle、MySQL、PostgreSQL、 SQL SERVER、ES、Kafka等數(shù)據(jù)庫之間的遷移。

1. 部署
推薦機(jī)器配置:內(nèi)存8GB,4core,磁盤60GB(建議上好點的SSD)。
本次在Linux服務(wù)器上進(jìn)行部署。
(1)部署JDK
根據(jù)官方文檔指引,需要安裝JDK8,具體可以自行在官方下載安裝。

我使用的8.0.191也可以。

(2)下載安裝包并進(jìn)行部署啟動
DBSyncer分社區(qū)版記專業(yè)版,如果想試用專業(yè)版功能可以自行測試,本文將使用社區(qū)版進(jìn)行測試。
下載:
社區(qū)版下載地址:https://gitee.com/ghi/dbsyncer/releases。
為了體驗新特性及優(yōu)化后的功能,可以下載最新版本,當(dāng)前最新版本為2.0.4,選擇并進(jìn)行下載。

wget https://gitee.com/ghi/dbsyncer/releases/download/v2.0.4/dbsyncer-2.0.4-bin.zip
解壓、啟動:
unzip dbsyncer-2.0.4-bin.zipbin目錄下有啟停腳本、執(zhí)行運(yùn)行即可

# 啟動
sh startup.sh看到“Start successfully!”即啟動成功。

啟動后的管理頁面可以通過 http:// ip:18686進(jìn)行登錄查看,默認(rèn)管理賬號密碼為 admin/admin。

2. 數(shù)據(jù)遷移
(1)準(zhǔn)備工作
本次測試的是從Oracle遷移數(shù)據(jù)至MySQL,因此先在Oracle數(shù)據(jù)庫中創(chuàng)建一張表及測試數(shù)據(jù),在MySQL數(shù)據(jù)庫中也創(chuàng)建一張表。
Oracle庫:
CREATE TABLE test1(id int ,c1 varchar(20))
INSERT INTO test1 values(1,'a');
INSERT INTO test1 values(2,'b');
commit;MySQL庫:
CREATE TABLE test1(id INT PRIMARY KEY ,c1 VARCHAR(20));(2)配置數(shù)據(jù)源

配置一個名為oracle1的數(shù)據(jù)源,對應(yīng)填寫連接信息、賬號密碼等,完成后保存即可

如果保存時不報錯,則說明連接添加成功,如果保存過程中有錯誤,則按照錯誤信息進(jìn)行解決。
再配置一個MySQL數(shù)據(jù)源作為目標(biāo)庫,MySQL的連接URL里要注意庫名的配置。

保存后即可在界面上看到對應(yīng)的數(shù)據(jù)源。

(3)配置遷移任務(wù)
這個版本點擊“添加驅(qū)動”進(jìn)行數(shù)據(jù)遷移任務(wù)的配置(建議修改名稱,以免有誤解)。

先選擇源目數(shù)據(jù)源,并配置一個任務(wù)名稱。

保存后進(jìn)行相關(guān)表影射等配置,例如選擇表名及目標(biāo)表,對應(yīng)的主鍵名等。

在高級配置中還可以進(jìn)行其他的轉(zhuǎn)換配置等。

任務(wù)配置完成后,可以在頁面上看到同步列表。

(4)啟動任務(wù)
點擊右上角的啟動按鈕即可啟動本任務(wù)。

啟動后會顯示”運(yùn)行中“”的狀態(tài)。

完成后會顯示進(jìn)度、耗時及成功數(shù)量。

去目標(biāo)庫中查看結(jié)果,可以發(fā)現(xiàn)數(shù)據(jù)已同步進(jìn)MySQL,至此本次數(shù)據(jù)遷移完成。

3. 小結(jié)
根據(jù)DBSyncer官方介紹,社區(qū)版的效率確實相對于專業(yè)版遷移效率差別很大,大家可以下載測試一下。另外,也可以配置大字段、大表,不同數(shù)據(jù)庫的兼容配置、增量同步等進(jìn)行更個方面的測試。

除了DBSyncer,其他的數(shù)據(jù)遷移工具也可以多嘗試及對比。



























