GoldenGate
Oracle GoldenGate 技術(shù)原理介紹
Oracle GoldenGate 軟件是一種基于 log(日志)的結構化數據復制軟件,它 通過(guò)解析源數據庫在線(xiàn) log 或歸檔 log 獲得數據的增、刪、改變化,再將這些變 化應用到目標數據庫,實(shí)現源數據庫與目標數據庫同步、雙活。Oracle GoldenGate 軟件可以在異構的 IT 基礎結構(包括幾乎所有常用操作系統平臺 和數據庫平臺)之間實(shí)現大量數據亞秒級的實(shí)時(shí)復制,其復制過(guò)程簡(jiǎn)圖如下:
如上圖所示,Oracle GoldenGate 的數據復制過(guò)程如下:
利用捕捉進(jìn)程(Capture Process)在源系統端讀取 Online Redo Log 或 Archive Log,然后進(jìn)行解析,只提取其中數據的變化如增、刪、改操作, 并將相關(guān)信息轉換為 Oracle GoldenGate 自定義的中間格式存放在隊列 文件中。再利用傳送進(jìn)程將隊列文件通過(guò) TCP/IP 傳送到目標系統。捕 捉進(jìn)程在每次讀完 log 中的數據變化并在數據傳送到目標系統后,會(huì )寫(xiě) 檢查點(diǎn),記錄當前完成捕捉的 log 位置,檢查點(diǎn)的存在可以使捕捉進(jìn)程在中止并恢復后可從檢查點(diǎn)位置繼續復制;
目標系統接受數據變化并緩存到 Oracle GoldenGate 隊列當中,隊列為一系列臨時(shí)存儲數據變化的文件,等待投遞進(jìn)程讀取數據。隊列數據量一般只有 log 的四分之一左右;
Oracle GoldenGate 投遞進(jìn)程從隊列中讀取數據變化并創(chuàng )建對應的 SQL語(yǔ)句,通過(guò)數據庫的本地接口執行,提交到數據庫成功后更新自己的檢查點(diǎn),記錄已經(jīng)完成復制的位置,數據的復制過(guò)程最終完成。
由此可見(jiàn),Oracle GoldenGate 是一種基于軟件的數據復制方式,它從數據 庫的 log 解析數據的變化。Oracle GoldenGate 將數據變化轉化為自己的格式, 直接通過(guò) TCP/IP 網(wǎng)絡(luò )傳輸,無(wú)需依賴(lài)于數據庫自身的傳遞方式,而且可以通過(guò) 高達 9:1 的壓縮率對數據進(jìn)行壓縮,可以大大降低帶寬需求。在目標端,Oracle GoldenGate 可以通過(guò)交易重組,分批加載等技術(shù)手段大大加快數據投遞的速度 和效率,降低目標系統的資源占用,可以在亞秒級實(shí)現大量數據的復制,并且目 標端數據庫是活動(dòng)的。
Oracle GoldenGate 支持多種拓撲結構,為用戶(hù)數據復制方案的靈活性、先 進(jìn)性奠定基礎,如圖所示:
Oracle GoldenGate 各種拓撲結構示意圖
1.雙向數據復制:利用OracleGoldenGate可以實(shí)現兩個(gè)數據庫之間數據 的雙向復制,任何一方的數據變化都會(huì )被傳遞到另一端,可以利用此模 式開(kāi)展雙業(yè)務(wù)中心;
2.廣播復制:由一個(gè)數據庫向多個(gè)數據庫復制,利用 Oracle GoldenGate的數據過(guò)濾功能可以實(shí)現數據的有選擇分發(fā);
3.廣播復制:由一個(gè)數據庫向多個(gè)數據庫復制,利用 Oracle GoldenGate的數據過(guò)濾功能可以實(shí)現數據的有選擇分發(fā)
4.集中復制:由多個(gè)數據庫向一個(gè)數據庫復制,可以將分布的、跨平臺或 ?異構的多個(gè)數據庫集中到一個(gè)數據庫。此種模式廣泛應用于 N+1 模式 的容災,通過(guò)將多個(gè)系統數據庫集中到一起,可以充分利用備份中心的 ?設施,大幅減少投資;另外也用于跨平臺多系統的數據集成,為這些提供系統提供一個(gè)統一視圖便于查詢(xún)和統計數據。
5.多層復制:由 A 數據庫向 B 復制,同時(shí)又由 B 向 C 復制,可以在以上幾種模式基礎上無(wú)限制擴展。?由此可見(jiàn),Oracle GoldenGate 的復制模式非常靈活,用戶(hù)可以根據自己的需求選擇特定的復制方式,并根據系統擴展對復制進(jìn)行擴展
復制的可靠性
Oracle GoldenGate 可以提供可靠的數據復制,主要體現在下面三點(diǎn):
1.保證事務(wù)一致性?Oracle GoldenGate 在災備數據庫應用復制數據庫交易的順序與在生產(chǎn)中
心數據庫上的順序相同,并且按照相同的事務(wù)環(huán)境提交,確保在目標系統上數據 的完整性和讀一致性,為實(shí)時(shí)查詢(xún)和事務(wù)處理創(chuàng )造了條件。
2.檢查點(diǎn)機制保障數據無(wú)丟失
Oracle GoldenGate 的抽取和復制進(jìn)程使用檢查點(diǎn)機制記錄完成復制的位置。 對于抽取進(jìn)程,其檢查點(diǎn)記錄當前已經(jīng)抽取 log 的位置和寫(xiě)隊列文件的位置;對 于投遞進(jìn)程,其檢查點(diǎn)記錄當前讀取隊列文件的位置。檢查點(diǎn)機制可以保證在系 統、網(wǎng)絡(luò )或 Oracle GoldenGate 進(jìn)程故障重啟后數據無(wú)丟失。
3.可靠的數據傳輸機制
OracleGoldenGate 用應答機制傳輸交易數據,只有在得到確認消息后才認 為數據傳輸完成,否則將自動(dòng)重新傳輸數據,從而保證了抽取出的所有數據都能 發(fā)送到備用端。數據傳輸過(guò)程中支持 128 位加密和數據壓縮功能;
GoldenGate 支持操作系統和數據庫類(lèi)型
Oracle GoldenGate 可以在異構的 IT 基礎結構之間實(shí)現大量數據的亞秒級 的數據捕捉、轉換和投遞。Oracle GoldenGate 支持幾乎所有常用操作系統和數 據庫平臺,如下表所示:
| 操作系統 | 數據庫 | |
|
Windows 2000, 2003,XP Sun Solaris HP-UX IBM AIX Linux?HP TRU64?HP OpenVMS?HP NonStop?IBM z/OS |
Capture(捕獲) | Delivery(投遞) |
|
Oracle IBM DB2 MS SQL Server Sybase ASE Teradata Enscribe SQL/MP SQL/MX |
Oracle IBM DB2 MS SQL Server Sybase ASE MySQL Teradata Enscribe SQL/MP SQL/MX?Ingres?HP Neoview 任何ODBC兼容數據庫 |
|

