GoldenGate原來是一家獨立的軟件廠商的產品,現該產品已被Oracle公司收購,Oracle將GoldenGate軟件集成到到其“融合(Fusion)”中間件中,預計以后該產品將與Oracle數據庫更緊密地集成。GoldenGate可以用于多種不同的操作系統平臺(Unix、Linux、Windows)和多種不同數據庫系統(如DB2、Oracle、Infomix、MySQL、Sybase等)之間的數據同步,是一款優秀的數據同步及數據分發產品。
GoldenGate軟件需要安裝在源數據庫服務器和目標數據庫服務器上,所需的操作系統資源在10%以下。GoldenGate數據同步的基本原理是由Extract進程讀取源數據庫的事物日志(Oracle中是redo log),將其中的變更操作(insert、update、delete等)按事務執行的順序組合在一起,直接將其發送到目標服務其上,或者存放到Trails文件中,然后由Data Pump進程將Trails文件傳輸到目標服務其上,在目標服務器上Collector進程接收從源服務器傳送過來的Trails文件,最后由Replicat進程將Trails文件中的數據裝載到目標數據庫中,其處理過程如下圖:
由于GoldenGate將數據存儲到自己的統一格式的Trail文件中,因此可以將Trail文件傳送到不同的操作系統,應用在不同的數據庫系統上,大大增強其靈活性。另外,由于GoldenGate只收集必要的數據到Trail文件中,且Trail文件可以壓縮,因此大大減少通過網絡傳輸的數據量,壓縮后傳輸的數據量通常是日志量的1/4或更少。
GoldenGate有以下優點:
1) 支持異構的操作系統和數據庫管理系統,便于客戶在不同數據庫管理系統和操作系統平臺之間的數據同步,這是其核心優勢所在;
2) 跟DataGuard傳輸整個日志文件相比,GoldenGate傳輸的數據量大大降低,在沒有LOB等數據對象的情況下,通常是整個日志文件1/4或更少;
3) 目標數據庫處于打開狀態,且支持一對多、多對一,雙向復制等,也可以選擇部分對象進行復制,可滿足數據分發和數據集成的需要,減輕源數據庫壓力;
4) 所占系統資源較少,通常在10%以下;
5) GoldenGate被Oracle公司收購后,預計對Oracle數據庫的支持方面會做的更好;
GoldenGate的劣勢體現在以下幾個方面:
1) 需要支付額外的Liscense費用,通常是一筆不小的支出;
2) 需要在數據庫軟件外安裝一套專門數據同步軟件,增加了管理維護的復雜程度;
3) 不能支持某些特定的數據對象和數據類型;
4) 由于數據復制操作獨立于數據庫管理系統,因此不能確保數據零丟失。
由以上分析可知,GoldenGate用于數據整合,數據共享和分發方面比較合適,至于在高可用的災難恢復環境中,如果能滿足業務的RPO/RTO要求,也不失為一種理想的數據同步解決方案。