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