天天看點

OGG學習筆記01-基礎概述

OGG學習筆記01-基礎概述

OGG(Oracle Golden Gate),最近幾年在資料同步、容災領域特别火,甚至比Oracle自己的原生産品DataGuard還要風光,主要是因為其跨平台、跨資料庫、跨版本的強大特性。

OGG理論概念

我們可以搜尋到網上對它的簡單介紹:

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

> Oracle Golden Gate可以在異構的IT基礎結構(包括幾乎所有常用作業系統平台和資料庫平台)之間實作大量資料亞秒一級的實時複制,進而可以在應急系統、線上報表、實時資料倉庫供應、交易跟蹤、資料同步、集中/分發、容災、資料庫更新和移植、雙業務中心等多個場景下應用。同時,Oracle Golden Gate可以實作一對一、廣播(一對多)、聚合(多對一)、雙向、點對點、級聯等多種靈活的拓撲結構.

目前許多客戶環境都已經在廣泛使用OGG。由于工作需要,近期我也會系統的學習下OGG,目前學習主要以OGG在Oracle資料庫之間的同步來說明一些基本概念,後續看時間情況可能了解OGG對其他主流資料庫的同步。

假設已有源資料庫和目标資料庫,且分别部署好OGG軟體。

源資料庫部署的OGG,簡稱源OGG;目标資料庫部署的OGG,簡稱目标OGG。

同步的過程就是源OGG的EXTRACT程序從源資料庫的聯機redologs中抽取獲得變化,把它寫到本地trail檔案中,然後源OGG的Data pump程序再從本地trail檔案中抽取變化傳給目标OGG的collector程序,目标的collector程序再把這些變化寫入目标trail檔案中,最後目标OGG的Replicat程序把目标trail檔案中記錄的變化應用到目标資料庫中。

如果要同步的表數量比較多或是業務有區分,需要分開管理,OGG是支援分開多個extract程序,多個datapump程序,多個replicat程序,這樣,可以啟動或停止其中任意一類同步,而不影響其他的同步。

由此,我們可以得到一張Oracle Golden Gate的簡要體系圖:

OGG學習筆記01-基礎概述

需要注意的是,每套OGG所有的程序都是由其Manager程序來管理的,也就是說Manager程序負責管理,啟動關閉其他程序。OGG用組來表示它的程序,上面簡單提到的extract、replicat這些程序,實際上需要各自的參數檔案、檢查點檔案等。這些内容共同組成一個組,且每個組需要有一個組名字。

可以将上面的簡要體系圖再标注一些内容,便于了解OGG實際的工作方式。

OGG學習筆記01-基礎概述

自己畫的草圖太醜,借用Oracle的一張圖:

OGG學習筆記01-基礎概述

OGG的檢查點資訊,對于源OGG隻能以檔案形式預設存放在GGHOME/dirchk目錄下,一個組對應一個檔案。

而對于目标OGG檢查點資訊可以存放在資料庫表中,且建議存放到資料庫表中。

對于源資料庫,如果要使用OGG,需要配置supplemental logging,原因是OGG相當于邏輯同步,除了要記錄被修改的記錄,還要把能夠辨別這條記錄的資訊同時記錄在日志中。這樣的話,Oracle預設情況是不達标的,需要額外開啟supplemental logging才可以。

具體做法是:在資料庫級别開啟最小附加日志,在需要同步的表級别開啟詳細附加日志。

對于目标資料庫,配置檢查點資訊到目标資料庫表中,具體做法:

複制程序可以指定checkpointtable 進而使用資料庫表記錄檢查點資訊。

OGG安裝介紹

OGG媒體下載下傳,在ORACLE官網就有提供最新版本下載下傳,如果需要下載下傳曆史版本的,就需要MOS賬号。

下載下傳位址: https://edelivery.oracle.com

OGG的安裝也非常簡單,在期望的安裝目錄下,直接解壓壓縮檔案即可。

為了便于管理維護,我們建立新的作業系統使用者和資料庫使用者,專門給OGG使用。

環境變量,除了設定OGG自己,還需要設定可以通路到庫檔案,這也是為何将系統使用者ogg隸屬于oinstall組,保證其有權限通路oracle安裝目錄的庫檔案。

确定ggsci可以正常使用,然後使用create subdirs建立OGG的子目錄,最後配置好Manager。

後續extract、replicate等OGG實際工作的程序(組)配置,将在下篇《OGG學習筆記02-單向複制配置執行個體》詳細說明。

Reference

- 張曉明. 大話Oracle Grid[M]. 人民郵電出版社, 2014.