天天看點

OGG_Oracle GoldenGate簡介(概念)

​2014-03-01 Created By BaoXinjian​

OGG_Oracle GoldenGate簡介(概念)

一、摘要​

GoldenGate軟體是一種基于日志的結構化資料複制軟體,它通過解析源資料庫線上日志或歸檔日志獲得資料的增量變化,再将這些變化應用到目标 資料庫,進而實作源資料庫與目标資料庫同步。

GoldenGate 可以在異構的IT基礎結構(包括幾乎所有常用作業系統平台和資料庫平台)之間實作大量資料亞秒一級的實時複制,進而在可以在應急系統、線上報表、實時資料 倉庫供應、交易跟蹤、資料同步、集中/分發、容災等多個場景下應用。

同時,GoldenGate可以實作一對一、廣播(一對多)、聚合(多對一)、雙向、點對點、級聯等多種靈活的拓撲結構。

1. 優點:

(1). 安裝、配置簡單

(2). 管理維護相對直覺,通過其自帶的Oracle Management Pack for Oracle GoldenGate管理工具,能夠對其進行圖形化界面的管理

(3). 支援異構複制,如不同使用者,不同資料庫平台的複制,這也是其亮點所在

(4). 未來發展潛力還是很看好

2. 缺點:

(1). 官方的軟體目前都隻支援64位系統

(2). 由于是第三方工具,對環境要求比較高,特别是在LINUX環境下,對作業系統的字元集有所要求,主要是我們系統中的表名都是中文,必須要其對中文的支援

(3). 在進行應用程序的參數配置時候發現,對于特别多的表複制,暫時不清楚GoldenGate是否有限制,因為啟動的時候,我配置參數對ZLHIS所有表進行複制的時候,會提示“”錯誤,但是如果隻對少數表或者單個表複制的時候,又不出現該提示,這個問題正在核實

(4). 目前網上能查詢到的資料相當有限,普及率不是很高

3. 綜上所述,GoldenGate同流複制比較起來的亮點還是在異構上,不過Oracle官方的說法是以後一流的Streams技術将被內建到GoldenGate中,這也是其發展的趨勢,其價值對于我們使用者的應用來說,還是很值得繼續深入研究

OGG_Oracle GoldenGate簡介(概念)
OGG_Oracle GoldenGate簡介(概念)

OGG_Oracle GoldenGate簡介(概念)

二、解析​

1. OGG是資料同步軟體,或者說是邏輯複制軟體,其競争對手有IBM CDC,DELL shareplex,DSG,DDS等等。

2. OGG軟體是需要安裝在作業系統上的,Oracle DB軟體沒有自帶OGG軟體(至少目前是這樣的)

3. OGG軟體有三大程序(說四大程序也行):

  • 三大程序:源頭抽取程序、源頭傳輸程序、目的端應用程序(即:複制程序)
  • 四大程序:源頭抽取程序、源頭傳輸程序、目的端server程序(負責在目的端寫入trail檔案)、目的端應用程序(即:複制程序)

4. OGG軟體有兩種trail file

  • 源頭的trail file:由源頭抽取程序寫入。
  • 目的端的trail file: 源頭傳輸程序傳輸到目的端,由目的端的server 程序寫入目的端作業系統的指定路徑下。

5.OGG軟體中三大程序都有自己的checkpoint(即:檢查點,用來記錄每種程序讀取到什麼位置了,寫入到什麼位置了)

  • 源頭抽取程序:有讀取檢查點 和寫入檢查點
  • 源頭傳輸程序:有讀取檢查點 和寫入檢查點
  • 目的端應用程序:有讀取檢查點

6.OGG軟體三大程序處理trail file的過程:

  • 源頭抽取程序:讀取oracle redo log(假設源頭資料庫是oracle),結合抽取程序的參數檔案,将redo log中的内容變為OGG自有格式的檔案(即:trail file),并寫入到源頭作業系統的指定路徑下
  • 源頭傳輸程序:讀取“源頭抽取程序寫入的trail file”,結合傳輸程序的參數檔案,發送需要同步的資料到目的端,在目的端是由server 程序負責寫入。
  • 目的端應用程序:讀取目的端作業系統的指定路徑下的trail file,結合應用程序的參數檔案,形成sql語句,在目的端db上執行這些sql語句。

7. OGG系統結構圖

OGG_Oracle GoldenGate簡介(概念)

8. OGG可應對資料維護情況

OGG_Oracle GoldenGate簡介(概念)

OGG_Oracle GoldenGate簡介(概念)

三、程序結構​

Manager程序:

運作在源端和目标端上。每個源端或者目标端有且隻能存在一個Manager程序。

它是GoldenGate的控制程序,用于啟動、監控、重新開機GoldenGate的其他程序,報告錯誤及事件,配置設定資料存儲空間,釋出門檻值報告等。

其運作狀态有兩種即RUNNING(正在運作)和STOPPED(已經停止)。

2. Extract程序:運作在資料庫源端。

負責從源端資料表或者日志中捕獲資料。Extract程序利用其内在的checkpoint機制,周期性地檢查并記錄其讀寫的位置,通常是寫入到一個本地的trail檔案。

在初始資料裝載階段,Extract程序直接從源端的資料表中抽取所有資料。

初始資料同步完成以後,Extract程序負責捕獲源端資料的變化(DML和DDL)。

extract程序會優選online log。

其運作狀态包括STOPPED(正常停止)、STARTING(正在啟動)、RUNNING(正在運作)、ABENDED(Abnomal End的縮寫,表示異常結束)。

3. Pump程序:運作在資料庫源端。

如果源端使用了本地的trail檔案,那麼Pump程序就會把trail以資料塊的形式通過TCP/IP協定發送到目标端。

Pump程序本質是Extract程序的一種特殊形式,如果不使用trail檔案,那麼就是Extract程序在抽取完資料以後,直接投遞到目标端。

與Pump程序相對應的叫做Server Collector程序,對人們來說它是透明的。它運作在目标端,其任務就是把Extract/Pump投遞過來的資料塊重新組裝成trail檔案,人們稱之為遠端trail檔案。

4. Trail檔案:将抽取的事務資訊轉化成的一種GoldenGate專有格式的檔案源、目标兩端都會存在這種檔案,源端存放的trail檔案叫本地trail檔案,目标端存放的trail檔案叫遠端trail檔案。

trail檔案存在的目的旨在防止單點故障,将事務資訊持久化,并且使用checkpoint機制來記錄其讀寫位置,如果故障發生,則資料可以根據checkpoint記錄的位置來重傳。

5. Replicat程序:運作在目标端負責讀取目标端trail檔案中的内容,并将其解析為DML或DDL語句,然後應用到目标資料庫中。

和Extract程序一樣,Replicat也有其内部的checkpoint機制,保證程序重新啟動後可以從上次記錄的位置開始恢複,而無資料損失的風險。

它的運作狀态和Extract程序一緻,包括STOPPED、STARTING、RUNNING、ABENDED。

OGG_Oracle GoldenGate簡介(概念)

四、目錄結構​

1. dirchk:檢查點檔案

(1).用于存放由extract抽取程序和replicat複制程序建立的checkpoint檔案,checkpoint檔案儲存者目前讀和寫的時間戳資訊,通過這些資訊保證了資料的準确性和資料容錯功能。

      檔案格式如下:<group name><sequence number>.<ext>

(2).group name就是我們配置的程序名稱,序列号,加上字尾名成,字尾名稱分為cpe(checkpoint extract)和cpr(checkpoint replicat)。

2. dirdat:跟蹤檔案和抽取檔案

(1).用于存放GG跟蹤檔案和由extract程序建立的抽取檔案,這些檔案将被複制程序(或者其他需要的)進一步處理和使用。

(2).檔案格式如下:使用者自定義的2個字首字元+6為序列号(跟蹤檔案)

                         或者 使用者自定義的格式(抽取檔案

3. dirdef:資料定義檔案

(1).用于存放由DEFGEN元件建立的定義檔案,包含在異構環境同步中的源或者目标端的資料定義。

(2).是一個可編輯的文本檔案,比如你要添加一個新進建立表的相關的同步定義就可以在此直接編輯。

      檔案格式如下:使用者通過DEFGEN參數檔案自定義

4. dirprm:參數檔案

(1).用于存放GG的參數檔案,這些參數檔案可以通過系統文本編輯器直接編輯,也可以通過在ggsci指令行下edit params來編輯,達到的效果是一樣的。

(2).檔案格式如下:<group name/user-defined name>.prm

5. dirpcs:狀态檔案

(1).用于存放各個程序的狀态資訊,當相關程序運作的時候,這些程序的相關資訊,比如程式名稱,程序名稱,程序監聽端口,程序ID等等都将被寫入各自狀态資訊檔案。

     檔案格式如下:<group>.<extension>

(2).其中extension有3個:pce(extract)  pcr(replicat)  pcm(manager)

6. dirrpt:報告檔案

(1).用于存放各個程序的報告檔案,内容為extract、replicat和manager程序運作相關的統計報告資訊。

(2).檔案格式如下:<group name><sequence number>.rpt

7. dirsql:SQL腳本檔案

(1).用于存放由TRIGGEN元件建立的SQL腳本檔案,這些SQL腳本用于建立GG相關的記錄觸發器和日志表。

(2).檔案格式如下:使用者自定義名稱.sql

                         或者  表名稱.sql

8. dirtmp:臨時檔案

The default location for storing large transactions when the size exceeds the allocated memory size.

Do not edit these files.