ogg概敘、架構、程式

張衝andy發表於2017-03-04

一. OGG 概述 

OGG 全稱Oracle Golden Gate。

歷史:

Golden Gate公司於1995年成立於美國加州舊金山,它的名稱源自舊金山聞名於世的金門大橋。兩位創始人Eric Fish和Todd Davidson最初旨在為Tandem計算機公司設計一個容錯系統,由於Golden Gate的健壯性和出色的資料複製功能,銀行用它來把ATM網路的交易資料傳送到IBM大型機,後來廣泛地應用到金融行業及要求資料複製高效、健壯的各個行業。該公司於2009年9月被Oracle公司收購,在此之前Oracle和Golden Gate公司就有了長達超過10年的合作關係。在Oracle收購Golden Gate以後,與Oracle原有的 Data Guard互為補充,共同為企業提供跨平臺實時資料同步的解決方案。

 

Golden Gate 軟體分類說明:

(1)Golden Gate:包括GoldenGate Capture, Deliver 和Active Data Guard, XStream on Oracle DB,並支援各種開放資料系統,是我們通常講的OGG的概念。
(2)Golden Gate Director:實際上,在下載的時候,可以發現沒有Director的類目了,替換的是一個Golden Gate Management Pack的包,其實這個就是之前的OGG Director。Management Pack是基於瀏覽器的管理工具包,有限使用WebLogic SE,所以配置MP,需要先安裝weblogic。
(3)Golden Gate Veridata:跨平臺比較複製的源庫和目標庫,為Golden Gate源端和目標端提供資料比對和校驗的功能。
另外,也有不太常見的:
(1)Golden Gate for Mainframe:包括GoldenGate Capture, Deliver for HP Non-Stop, IBM DB2 on 
Mainframe, plus Syncfile。
(2)Golden Gate Adapters:對Java、Flat File、Siebel等的介面包。
 
 
二 、OGG架構
 
支援的異構平臺:

 

 
支援的架構形式:
 

 

 
 
 
實現的功能:
 
 

 

三、目錄結構

目錄          說明
BR        boundedrecover需要的checkpointfiles
cfg        配置OGG監控所需要的property和XML檔案
dirchk    Extract或者Replicat程式建立的checkpointfile。cpe和cpr字尾
dirdat    trial檔案的預設存放位置,2個使用者定義的字元+6個數字組成
dirdef    異構資料定義檔案,由DEFGEN生成
dirjar    OGGmonitor相關的jar包
dirpcs   程式狀態檔案
dirprm   引數檔案
dirrpt    程式報告的儲存目錄
dirsql    Sql指令碼
dirtmp  超出分配記憶體的事務臨時儲存目錄
 
四、 OGG程式
 
在Oracle OGG 12c中,有如下元件:
(1)Extract
(2)Data pump
(3)Replicat
(4)Trails 或 extract files
(5)Checkpoints
(6)Manager
(7)Collector
 

 

1.  Extract 程式

Extract 程式負責資料抽取工作。
Extract 可以配成如下兩種模式:
(1)Initial Load:
在初始化裝載過程中,Extract 程式直接從源物件中抽取當前的資料。

(2)Change synchronization: 
為了保證源資料和其他物件保持資料的一致,extract 程式會捕獲源物件自初始化同步以後的DML 和DDL 的變化。
如果接收到的是rollback,那麼Extract 會清除該事務之前的所有記錄。
如果接收到的是commit,Extract 會將之前儲存的事務資訊進行持久化,即將事務資訊寫入磁碟上的trail 檔案,然後按佇列傳送到目標庫。 
 
2.Data Pump 程式
Data pump 程式是OGG 源庫上的一個輔助Extract Group。
 
3. Replicat 程式
Replicate 程式執行在目標系統上,該程式會讀取目標端的trail中的檔案,並將解析為DML 或者DDL 語句,然後在目標資料庫執行。
 
 
Replicate可以配置成如下模式:
(1)Initial loads:
(2)Change synchronization
 
4. Trails 檔案
為了支援連續的extraction 和 replication 資料的改變,OGG抓取這些改變的資料臨時存放在一個序列化的磁碟檔案裡, 這個檔案就叫trail。 

Trail 檔案可以放在源端或者目標端的系統裡,甚至可以放到臨時中轉的系統上,這主要取決與GG 的配置,如果存放在local system上,就叫extract trail 或者 local trail,如果存放在remote system上就叫作remote trail。
 
建立和維護Trail 檔案:
預設情況下,trails存放在GG 安裝目錄的dirdat 子目錄下。
預設情況下,每個trails的檔案是10M,為了保證程式的正常執行必須不斷的建立的新的trail 檔案。 這個過程由OGG 自動實現,並且不影響OGG的執行。
每個新生成的檔案,檔名都會繼承舊trail檔案的前2個字母,然後加上6個數字,這樣來進行唯一性約束。 數字從000000到999999。當數字到達999999時,又繼續從000000開始。之前的trail 檔案被覆蓋。
 
補充: (Extract Files)
Extract file 可以是一個檔案,或者配置成多個檔案。 配置成多個檔案可以避免觸及操作對單個檔案最大大小的限制。
Extract file 和 trail 檔案很類似,但是Extract file中不會儲存checkpoints的資訊。  Extract file 會在執行時自動建立。
 
5. Checkpoints 機制 
Replicate都會checkpoint table 和 checkpoint file中記錄事務的位置。我們也可以不使用checkpoint table。 
 
6. Manager 程式
Manager 是Golden Gate的控制程式,Manager 必須在所有的Golden Gate端執行,並且要在Extract 或者 Replicat 程式啟動之前執行。 在Extract 或者 Replicat程式執行期間,需要一直保證Manager程式的執行,這樣才能管理相關的資源。
 
Manager 程式有如下功能:
(1)啟動Golden Gate 程式
(2)啟動其他相關的程式
(3)維護程式的埠
(4)管理trail 程式
(5)建立event,error和threshold 的報告。
 
7.   Collector 程式
target的一個後臺程式。
Collector  程式做如下工作:
(1) 將源端Extract 程式的請求傳送到Manager程式,掃描並繫結可用的埠,並將埠資訊返回給Manager 程式,然後分配給請求的的Extract 程式。

(2) Collector 程式會接收源庫Extract 程式傳送過來的改變的資料,並將資料寫入target 系統的trail 檔案中。
若srouce 端pump 程式起不來,collector 會鎖trail 檔案 。 那麼我需要確認是哪個pump程式出現問題,view report pump#,檢視後找到collector ,kill -9 殺死。
 
 
補充說明:
每個Extract 和 Replicat 程式需要大約25-55M的記憶體。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2134701/,如需轉載,請註明出處,否則將追究法律責任。

相關文章