【IT168 評論】Oracle Golden Gate是一種基於日誌的結構化數據複製備份軟體,它通過解析Source Database在線日誌或歸檔日誌獲得數據的增量變化,再將這些變化應用到Target Database,從而實現源資料庫和目標資料庫之間的同步。
Oracle Golden Gate可以實現在IT異構平臺之間實現大量數據秒級的實時同步,由於其功能強大,所以用於很多應用系統,像在線報表系統、實時數據倉庫供應、數據同步、數據移植、雙業務中心等;同時,Oracle Golden Gate可以實現一對一、一對多、多對一、級聯等多種拓撲結構。
Oracle官方也提供了Oracle Golden Gate軟體下載和在線學習文檔(11g R2)。
Golden Gate拓補
Oracle Golden Gate可以在以下的情況下被配置:
1. 從一個資料庫靜態提取數據,將這些數據加載到另外一個資料庫
2. 為了使源庫和目標庫保持一致,連續性的提取和複製事務的DML操作和DDL改變
3. 從資料庫中提取數據,複製到資料庫外部的一個文件中
Golden Gate組件
下圖展示了一個用於初始化數據和同步DML/DDL操作的Oracle Golden Gate邏輯架構圖,這種被建議的可變化模式依賴於業務需求。
Extract
此進程運行的Source System,它是Golden Gate的Extraction(capture提取)機制,其主要用於以下目的:
1. Initial Loads:初始化加載數據,從源對象直接捕獲提取一個當前的、靜態的數據集(這裡是指用EXPDP/IMPDP工具把數據從源庫導入到備庫,對此工具還不了的的同學可以參考Oracle工具EXPDP詳解& IMPDP詳解)
2. Change Synchronization:改變同步,在初始化同步完成後Extract捕獲DML & DDL操作,使Source Database與另一個數據集保持同步。
Extract可以通過以下方式捕獲源資料庫數據:
1. 如果是初始化加載,可以直接從Source Tables捕獲
2. 從資料庫的Recovery Logs或者Transaction Logs(像Oracle的Redo Log或者是Sql/MX的Audit Trails),實際中捕獲數據的方法依賴於資料庫類型
3. 第三方捕獲模塊,此方式提供了一個通訊蹭,將數據和源數據從外部的API傳送到Extract API,由數據供應商或者第三方供應商提供該組件。
當Extract配置為Change Synchronization時,Extract會對其配置的對象上執行的DML & DDL進行捕獲,Extract存儲這些操作直到該操作的事務提交或者回滾;當收到的是事務回滾時,Extract會丟棄這個事務中的操作,當收到的是事務提交時,Extract會將這個事務持久化到磁碟上的一系列文件中,此類文件叫Trail,這些文件排隊等待被傳輸到Target Database。事務中的所有操作以序列化被組織的事務單元寫入到Trail中,這種設計即確保了速度也保證了數據的完整性。
可以同時配置多個Extract進程去操作不同的對象。例如,當數據變動量太大的時候,可以使用兩個Extract進程並行提取和傳送到兩個Replicat進程以最小化目標等待時間,每個Extract需要分配一個Group。