文章撰寫:Daniel Hsu / 奧登資訊技術顧問
Oracle GoldenGate Microservice
Oracle GoldenGate (以下簡稱OGG)是一個全面的軟體包,用於在異構數據環境中實現數據複製。該產品集支援高可用性解決方案、實時數據集成、事務性變更數據捕獲、數據複製、轉換以及運營和分析企業系統之間的驗證。
本次介紹如何以OGG 將MS-SQL Server資料複製到Oracle Database,架構如下圖1 :
環境說明:
Source Database :MS-SQL Server 2022
Target Database :Oracle 19C
Golden Gate :21C Microservices (For Oracle and For MS-SQL Server)
OS Version :Oracle Linux 8.8
安裝 ODBC
在OGG的主機上安裝ODBC Driver,並在設定檔中加入MS-SQL Server的資料,如主機IP Address,port number,Database name 等資訊(如圖2)。
安裝 Goldengate for MS-SQL Server
在Oracle 官網下載 OGG microservice for MS-SQL 後解壓縮並進行安裝,安裝過程指定其所欲安裝的路徑(如圖3~圖5)。
建立MS-SQL帳號及啟動CDC服務
預先在MS-SQL Server 開立 DB 帳號,並授與 sysadmin 權限,並在要連接的 Database 中建立對應的結構描述(如圖6)。
接下來需至 SQL Server Agent 中,將要進行資料複製的資料庫其 CDC 打開,設定後可看到(如圖7)的畫面。
複製MS-SQL 資料表結構至Oracle Database
使用 SQLDeveloper 複製Table 結構,不含資料(圖8)。
OGG 連接MS-SQL Server
在完成安裝後進入OGG for MS-SQL server 管理服務中,進行資料庫組態配置(如圖9),
資料來源的名稱(DNS)欄位輸入先前在ODBC設定檔中所設定的名稱”MSSQLOGG”,
以及在MS-SQL Database 預先開立給OGG所使用的帳號,此範例為”oggadmin”以及密碼。
建立 Extract 服務
接下來要進行的部份是針對來源端 MS-SQL Server 資料庫 AdventureWorks2019 進行資料擷取,一個是初始化資料擷取, 其次是異動資料擷取。
新增起始載入Extrace
在管理服務中點選新增Extract選項進行新增,接著選擇”起始載入Extract”(圖11),下個頁次所需輸入的項目有處理作業名稱、證明資料網域、證明資料別名以及歷程檔名稱(圖12)。
接著OGG會產出參數檔,在此可進行參數檔編修,完成編修後點選建立先不執行(圖13)。
新增異動 Extract
再新增一個異動的 Extract 服務,點選變更資料擷取 Extract(如圖14)。
接著如初始 Extrace 將處理作業名稱、證明資料網域、證明資料別名以及歷程檔名稱進行設定,以及參數檔的編修(如圖15、16)。
Oracle 資料庫連接設定
配置Oracle資料庫連線設定以及指定一個存放檢查點的資料表,使OGG與Target DB 完成連線設定, 以利後續資料轉接,其程序(如圖17~19)。
分送服務
此階段要配置的部份是要將由MS-SQL 所擷取出來的初始及異動的Trail file 分送到特定的路徑中,經由接收服務讓負責 Oracle 的 Deployment 可以順利讀取 Trail File ,將資料接轉到Oracle Database 中。
配置 Replicat
配置好Extract 以及分送服務後表示可以經由OGG將資料由MS-SQL擷取出來並產生Trail file ,接下來即是要將Trail的內容經由 Replicat 服務,將資料導入 Oracle Database 中。
以下為建置之初始 Replicat 之程序,Oracle Deployment,點選新增Replicat,在(圖23)中選擇”非整合式 Replicat ”選項。
在(圖24)之設定頁面中輸入必要項目:處理作業名稱、證明資料網域、證明資料別名、歷程檔名(對應初始Extract的名稱)以及檢查點表。
接著要設定的是將來源(MS-SQL)的資料表與目標(Oracle)資料庫的資料表進行對應設定。
經由上一程序的設定後,OGG已將先前設定擷取MS-SQL的初始資料複製到Oracle 資料庫中,(圖26)為執行狀態,(圖27)為經由Replicat服務中資料統計的選項,觀察複製到Oracle 資料庫中各資料表的插入筆數。
建立異動Replicat
配置異動的Replicat程序與初始的Replicat相似,差異的部份為歷程檔名稱要對應到異動Extract的歷程檔名稱,以便將MS-SQL中有異動的資料經由OGG 複製到Oracle Database 中。
資料驗證
經由上述程序已可經由OGG將MS-SQL資料複製到Oracle Database 中,接下來我們就來驗證一下在MS-SQL中的異動是否會被同步到Oracle Databae 中,我們將department 資料表departmentid=6的資料進行異動將欄位name的值修改為’Research and Dev’。
接著連線到Oracle 資料庫中,檢核資料同步的結果。
結語
經由上述的設定程序已可將 MS-SQL 的資料成功複寫到 Oracle 資料庫,且在 MS-SQL有異動時即會透過 OGG 將資料寫入Oracle DB 中,OGG 的運用不僅僅是用於不同資料庫型態間的資料抛轉,也適用以下的解決方案:
不適用Data Guard解決方案時,需要零或接近零停機的移轉作業。
作為舊系統與新系統之間的資料同步方法。
在其他主機上建立資料庫之後,會設定 Oracle GoldenGate 從實際環境執行資料庫複製變更。
可以在移轉的資料庫上建立保證的回復點,以便能夠倒溯使用者測試資料庫。Oracle GoldenGate 可以在將應用程式使用者移至新資料庫之前,從實際環境執行資料庫套用任何未處理的資料變更,與快照待命資料庫類似。
可以從移轉的資料庫設定雙向複製到實際環境執行資料庫,以作為後援解決方案。
Comments