Oracle Golden Gate(OGG)學習——源端安裝OGG

GoldenGate軟件是一種基於日誌的結構化數據複製軟件。GoldenGate 能夠實現大量交易數據的實時捕捉、變換和投遞,實現源數據庫與目標數據庫的數據同步,保持亞秒級的數據延遲。

GoldenGate能夠支持多種拓撲結構,包括一對一,一對多,多對一,層疊和雙向複製等等。

一、版本選擇與前期準備

OGG安裝版本與Oracle的匹配,可以參考這個網站:版本參考

但是最好還是查看Oracle的官方文檔,之前我也因爲版本的問題安裝一直失敗。先看Oracle的版本:

先看Oracle的版本:

因爲是Oracle 10g的數據庫,所以看這個文檔知道要使用10.4的版本:OGG文檔

找到匹配的OGG版本號後,在 搜索版本 中可以搜索該版本。

除了源端的OGG以爲,還需要下載目標端的應用,所以先查看kafka的版本:

然後檢索 Oracle GoldenGate for Big Data 12.3.2.1.0 下載:

注意:下載以後儘快執行安裝,不然會說 There are no products in your library。這樣的話,只要重新下載就可以了

二、檢查數據庫配置情況

Ogg是基於日誌的結構化數據複製軟件,所以源端數據庫必須開啓歸檔模式。

歸檔模式就是保存所有的事務日誌,記錄對數據庫所做的修改,比如插入,刪除,更新數據等,對這些操作都會記錄在聯機重做日誌裏。相反非歸檔就是不保存舊事務日誌。

檢查歸檔模式、附加日誌、強制日誌參數是否開啓。Oracle 10g要檢查回收站功能是否關閉,11g則不必檢查。這裏使用的是10g的,所以需要通過以下指令檢查。

SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;

默認情況下歸檔模式、附加日誌、強制日誌參數是關閉的。啓動歸檔模式、附加日誌、強制日誌。其中開啓歸檔模式需要重啓數據庫,開啓附加日誌、強制日誌不需要重啓數據庫。

SQL> shutdown immediate;   //關閉數據庫

SQL> startup mount;   //啓動實例並加載數據庫h

SQL> alter database archivelog;  //更改數據庫爲歸檔模式

SQL> alter database force logging;  

SQL> alter database add supplemental log data;

SQL> alter database open;


然後再檢查是否開啓,可以看到已經爲YES

三、安裝GoldenGate

將下載的exe文件執行後就可以在指定路徑下看到zip文件:

我把他解壓以後再重命名爲ogg11.2.1.0.2:

然後進入此文件,然後運行 ggsci.exe ,進入ogg的管理控制檯:

四、在Oracle中創建GoldenGate專屬用戶ogg

SQL> create user ogg identified by ogg;
SQL> grant connect,resource,unlimited tablespace to ogg;
SQL> grant execute on utl_file to ogg;
SQL> grant select any dictionary,select any table to ogg;
SQL> grant alter any table to ogg;
SQL> grant flashback any table to ogg;
SQL> grant execute on DBMS_FLASHBACK to ogg;

這樣的權限只能滿足DML的配置。DDL還暫時不能滿足。至於DDL所需要的配置,下次會更新。

五、配置

在ogg控制檯輸入命令:create subdirs,初始化目錄。創建其需要用到的目錄
> create subdirs

各個目錄的作用:

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

文件格式如下:
<group name/user-defined name>.prm
比如mgr.prm

(2)dirrpt
用於存放各個進程的報告文件,內容爲extract、replicat和manager進程運行相關的統計報告信息。

文件格式如下:
<group name><sequencenumber>.rpt

(3)dirchk
用於存放由extract抽取進程和replicat複製進程創建的checkpoint文件,checkpoint文件保存當前讀和寫的時間戳信息,通過這些信息保證了數據的準確性和數據容錯功能。

文件格式如下:
<groupname><sequence number>.<ext>
group name就是我們配置的進程名稱,序列號,加上後綴名成,後綴名稱分爲cpe(checkpoint extract)和cpr(checkpoint replicat)。

(4)dirpcs
用於存放各個進程的狀態信息,當相關進程運行的時候,這些進程的相關信息,比如程序名稱,進程名稱,進程監聽端口,進程ID等等都將被寫入各自狀態信息文件。

文件格式如下:
<group>.<extension>
其中extension有3個:pce(extract)  pcr(replicat)  pcm(manager)

(5)dirsql
用於存放由TRIGGEN組件創建的SQL腳本文件,這些SQL腳本用於創建GG相關的記錄觸發器和日誌表。

文件格式如下:
用戶自定義名稱.sql   或者  表名稱.sql
注意都是SQL結尾的腳本文件。

(6)dirdef
用於存放由DEFGEN組件創建的定義文件,包含在異構環境同步中的源或者目標端的數據定義。是一個可編輯的文本文件,比如你要添加一個新進創建表的相關的同步定義就可以在此直接編輯。
文件格式如下:
用戶通過DEFGEN參數文件自定義

(7)dirdat
用於存放GG跟蹤文件和由extract進程創建的抽取文件,這些文件將被複制進程(或者其他需要的)進一步處理和使用。

文件格式如下:
用戶自定義的2個前綴字符+6位序列號(跟蹤文件)  或者  用戶自定義的格式(抽取文件)

(8)dirtmp
用於執行大事務處理過程,官方的說法是當請求的內存超過分配的內存的時候,就會……巴拉巴拉,這個怎麼理解和解釋呢?臨時文件目錄?

記住一點就是了:不要編輯裏面的任何文件和內容。

(9)dirout
廢棄,不再使用。

六、配置源端的MGR

編輯mgr進程配置文件,沒有的話會提示我們創建:

edit params mgr

PORT 7809
DYNAMICPORTLIST  7810-7920
AUTOSTART er *
AUTORESTART er *, retries 5, waitminutes 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

參數解釋:

PORT:指定服務監聽端口;這裏以7809爲例,默認端口爲7809
DYNAMICPORTLIST:動態端口:可以制定最大256個可用端口的動態列表,當指定的端口不可用時,管理進程將會從列表中選擇一個可用的端口,源端和目標段的Collector、Replicat、GGSCI進程通信也會使用這些端口;
COMMENT:註釋行,也可以用--來代替;
AUTOSTART:指定在管理進程啓動時自動啓動哪些進程;
AUTORESTART:自動重啓參數設置:本處設置表示每3分鐘嘗試重新啓動所有EXTRACT進程,共嘗試5次;
PURGEOLDEXTRACTS:定期清理trail文件設置:本處設置表示對於超過7天的trail文件進行刪除。
LAGREPORT、LAGINFO、LAGCRITICAL:定義數據延遲的預警機制:本處設置表示MGR進程每隔1小時檢查EXTRACT的延遲情況,如果超過了30分鐘就把延遲作爲信息記錄到錯誤日誌中,如果延遲超過了45分鐘,則把它作爲警告寫到錯誤日誌中。

ACCESSRULE, PROG *, IPADDR 192.168.8.*, ALLOW   一般只設置在目標端,允許被這個網段的ip地址訪問。

七、啓動MGR進程

start mgr

然後再info all比較,可以發現已經成功執行:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章