1、單項複製結構數據庫
源數據系統--(Capture)-->隊列文件---(Pump)-->網絡(Internet,Intranet)-->隊列文件--(Delivery)-->目標數據系統服務器
這種結構用於將數據從單個系統複製到一個或多目標系統。網絡
三個進程:oracle
extract (capture) 進程, ide
data pump 進程, oop
replicate (delivery)進程。性能
隊列文件爲二進制文件。大數據
2、雙向複製(雙活)結構spa
這種結構能夠用於系統的高可用,相似ADG技術,可是OGG和ADG技術類似,用於的場景各不相同。操作系統
3、實時數據倉庫結構
應用企業全部數據進行整合在一個庫中,相似於Hadoop,數據可進一步應用於大數據技術。
4、實時進行數據分發
能夠從一個數據源端將數據或者部分數據分發到不一樣地理位置的目標數據源。
5、經過信息進行數據分發
經過富文本進行數據傳輸,如使用Microsoft Excel,將數據分發到不一樣數據庫類型。
6、理解SCN(System Change Numbers)
在Oracle GoldenGate 中將SCN做爲複製進程對Oracle數據庫的事務進行復制的惟一標識。在Microsoft SQL Server和MySQL一樣擁有類似的Number。
在啓動捕獲進程之後,記錄SCN號。能夠經過v$database視圖或者dbms_flashback包進行獲取。
獲取SCN的SQL:
SQL> select current_scn from v$database;
SQL> select dbms_flashback.get_system_change_number from dual;
注:在RAC環境中使用gv$database視圖獲取SCN。
7、OGG進程
(1)管理進程
管理進程是OGG全部進程的主進程,只要有複製進程存在,在相關的每一個系統中必須始終運行,主要功能以下:
a、啓動和重啓OGG進程;
b、啓動動態進程;
c、操做進程的端口號;
d、隊列文件的管理;
e、事件,錯誤和閥值報告
(2)收集進程
當OGG在線同步進行時,運行在目標數據端(交付端)的後臺進程。主要任務包括:
a、對來自源端抽取進程的管理器進行端口的掃描和限制。
b、接收來自源端抽取事務,並將數據寫入隊列文件。
OGG爲每個抽取進程分配一個收集進程。抽取進程結束時,收集進程也隨之結束。
(3)捕獲進程
在OGG中抽取進程用於在數據發生變化時,從在線事務處理日誌中(如:oracle的redolog)獲取數據的變化,實現數據同步。
一次抽取可使用兩種方法進行配置:
a、initial load:用於數據的初始化,通常是靜態數據的導入,常常使用specialrun 參數。
b、數據變動同步:當數據發生變化時從源端同步到目標端。
經典型捕獲進程有內存的需求,每一個捕獲進程須要25M~55M的內存。
整合型捕獲進程在11.2.0.2中引入並僅僅支持Oracle11.2.0.3及更高版本的數據庫。在Oracle數據庫中運行整合型捕獲與日誌挖掘進程進行互動。
在Oracle database內部有一些進程與整合型捕獲進一同運行,成爲日誌挖掘進程配置的一部分。
日誌挖掘服務器有如下幾部分組成:
讀:讀取並將redolog進行分解。
準備:掃描redolog,預過濾事務 爲並行使用作準備。
重組:使用SCN經過準備進程和服務對redo記錄進行整合。
獲取:按照redo記錄的格式,將邏輯上改變記錄傳輸到本地隊列文件。
注意:根據實際設置SGA中streams_pool_size 參數以獲取更好的性能。
(4)數據泵進程
其實數據泵組是一個二次抽取進程組,用於幫助數據經過網絡傳輸。儘管數據泵是一個相似抽取組的捕獲進程,可是並不衝突。數據泵進程的主要功能是將隊列文件經過網絡傳輸到遠程的目標系統上。
爲何要使用數據泵進程?這要能夠在網絡出現問題的時候保護數據,避免數據出現不一致的狀況產生。
數據泵進程不像捕獲進程,數據泵進程無須過多的配置,經典模式下僅僅須要配置可用。
(5)交付進程(複製進程)
交付進程在OGG環境中實際上是一個數據應用進程。交付進程的任務是:讀取隊列文件,按照時間順序獲取事務(按照SCN清單獲取事務),並應用事務。
交付進程有三種模式:
經典交付:經典交付是OGG默認配置的交付進程,由操做系統層進行管理。 內存需求:25M~55M;
協同交付:協同交付與經典交付很相似,區別在於:協同交付進程將會產生由主交付進程協調的從屬進程。並行的協同交付進程能夠分解一個交付進程,使得長事務像小事務通常。
集成交付:
在OGG12C中引入集成交付進程。集成交付是基於主鍵,外鍵或者惟一鍵約束,依賴於事務和應用事務。
集成交付集成包括四個部分:Receiver,Prepare,Coordinator,Apply(n),以下圖。
(6)隊列文件
隊列文件是OGG特有的二進制文件,在OGG結構中承載事務。當數據發生改變時,支持持續不斷地進行數據抽取和數據複製。他能夠存儲在本地文件中,也能夠存儲在遠程的目標系統文件中。