【goldengate】官方文件筆記三 Oracle GoldenGate 實時報表

shilei1發表於2018-01-23
這篇文件循序漸進的講述了OGG在適時複製的幾種配置方案。從最基本的配置開始講起,逐漸加入新的程式,加入新的策略,配置也隨之改變。下面從最基礎的配置說起。

報表配置
一對一複製是OGG最基本的配置方案:從源端資料庫到目標資料庫複製資料。在目標端從事報表和分析工作,實現OLTP和OLAP分離。

建立一個標準的報表配置
標準的OGG配置是一個提取組(Extract group)將捕獲的資料透過TCP/IP傳送給目標系統的trail檔案中,複製組(Relicat group)從trail中讀取資料,執行sql語句重演DML和DDL語句,實現資料的同步複製。

SOURCEdb ---> EXTRACT ---> TCP/IP ---> RMTTRAIL ---> REPLICAT ---> TARGETdb

源端系統
配置管理程式(Manager process)
1,在源端配置管理程式,參見筆 【goldengate】官方文件筆記一
http://blog.itpub.net/29047826/viewspace-1249506/

配置提取程式組(Extract group)
2,在源端,使用ADD EXTRACT 命令來建立一個提取組(Extract group),取名為ext
ADD EXTRACT <ext>, {TRANLOG | INTEGRATED TRANLOG}, BEGIN <time> [, THREADS <n>]

3,在源端,使用ADD RMTTRAIL命令來在目標系統上指定目標主機的trail檔案(remote trail)。引數EXTRACT將trail檔案和提取組向關聯。
ADD RMTTRAIL <remote_trail>, EXTRACT <ext>

4,在源端,使用EDIT PARAMS命令為提取組(Extract group)建立引數檔案。
-- 為提取組指定名稱 EXTRACT <ext>
-- OGG管理使用者登入資料的使用者名稱和密碼
[SOURCEDB <dsn_1>][, USERID <user>[, PASSWORD <pw> [<encryption options>]]
--
指定目標系統的IP地址,埠號和加密方式
RMTHOST <target>, MGRPORT <portnumber>, ENCRYPT <encryption options>
-- 指定遠端trail和加密方式
ENCRYPTTRAIL [<encryption options>] RMTTRAIL <remote_trail>
-- 指定要捕獲的表 TABLE <owner>.<table>;


目標端系統
建立管理程式
5,在源端配置管理程式,參見筆 【goldengate】官方文件筆記一
http://blog.itpub.net/29047826/viewspace-1249506/

6,在管理程式(Manager process)引數檔案,使用PURGEOLDEXTRACTS引數控制來自源端trail的刪除工作。

配置複製組(Replicat group)
7,在目標端,建立複製檢查點表(Replicat checkpoint table)。

8,在目標端,使用ADD REPLICAT命令來建立複製組(Relicate group)。使用EXTTRAIL引數將複製組(Replicate group)和remote trail檔案相關聯。告訴複製程式從哪裡獲取檔案。
ADD REPLICAT <rep>, EXTTRAIL <remote_trail>, BEGIN <time>

9,在目標端,使用EDIT PARAMS命令來建立複製組(Replicat group)引數檔案。
-- 為Replicat group指定名稱 REPLICAT <rep> -- State whether or not source and target definitions are identical: SOURCEDEFS <full_pathname> | ASSUMETARGETDEFS -- OGG管理使用者登入資料庫的使用者名稱和密碼 [TARGETDB <dsn_2>][, USERID <user>][, PASSWORD <pw> [<encryption options>]] -- Specify error handling rules: -- Specify decryption if trail is encrypted: DECRYPTTRAIL <encryption options> REPERROR (<error>, <response>) -- 關聯源庫和目標庫的表名稱 MAP <owner>.<table>, TARGET <owner>.<table>[, DEF <template name>]



新增投遞程式data pump

在剛才最基礎配置完成後,我們可以再完善一下網路傳輸上的可靠性。在提取程式(Extract)和TCP/IP網路連線之間加入一個程式,datapump。給它起一個貼切的中文名“投遞程式”。投遞程式也是提取程式中的一種,可以稱為二次提取程式。它在源端的trail中讀取資訊,透過TCP/IP投遞(傳送)到目標端的trail檔案中。投遞程式雖然不是必須配置的,但是為了系統的效能和可靠性建議配置。透過下面的簡圖,可以看下投遞程式datapump所處的位置。

SOURCEdb ---> EXTRACT ---> DataPump ---> TCP/IP ---> RMTTRAIL ---> REPLICAT ---> TARGETdb

配置投遞程式組(data pump Extract group)
在源端,使用ADD EXTRACT命令來建立一個投遞程式組,指令如下:
ADD EXTRAIL <pump>, EXTTRAILSOURCE <local_trail>, BEGIN <time>

EXTTRAILSOURCE:該引數指的是源端trail檔案路徑,投遞程式從該路徑讀取trail後傳送給目標端

在源端,使用ADD RMTTRAIL命令來指定在目標端將要建立的remote trail。
ADD RMTTRAIL <remote_trail>, EXTRACT <pump>

EXTRACT: 該引數將源端的投遞程式(data pump)與目標端的trail相連線。

總結一下上面的內容:
新增加的這個投遞程式是一個搬運工,在源端工作。它透過EXTTRAILSOURCE找到本地的trail檔案,讀取該檔案,在透過RMTTRAIL引數找到遠端trail檔案路徑,投遞過去。

使用EDIT PARAMS命令在源端為投遞程式建立引數檔案
-- 指定投遞程式組:EXTRACT <pump>-- 指定OGG管理使用者登入使用者名稱和口令:[SOURCEDB <dsn_1>][, USERID <user>][, PASSWORD <pw>

[<加密選項>]]
-- 如果輸入的trail被加密了,請指定:
DECRYPTTRAIL <加密選項>
-- 指定目標系統的主機名和ip地址
-- 透過TCP/IP傳遞資料的加密方式:
RMTHOST <target>, MGRPORT <portnumber>, ENCRYPT <encryption options>
-- 指定目標端trail檔案的加密方式[<encryption options>]
RMTTRAIL <remote_trail>
-- 指定捕獲物件:
TABLE <owner>.<table>;


當源端資料庫與目標資料庫不在一個網路中,可以在一箇中介系統裡建立投遞程式,該程式在整個部署中成為一個二傳手。
源端資料庫的投遞程式讀取本local trail後投遞(寫到)到中介系統中的trail,中介系統中的投遞程式(二傳手)讀取中介系統中的trail投遞到目標端。

在配置中需要修改的地方如下:
在源端的投遞程式引數中需要將RMTHOST的IP設定為中介地址,RMTTRAIL需要設定為中介trial路徑

在中介系統中需要配置如下內容:
1,配置管理程式Manager process,方法同源庫相同。
2,在Manager引數檔案中使用PURGEOLDEXTRACTS來控制trail刪除策略
3,配置投遞程式組,取名為pump_2
ADD EXTRACT <pump_2>, EXTTRAILSOURCE <local_trail_1>, BEGIN <time>

EXTTRAILSOURCE:該引數指定中介系統中trail檔案路徑

4,使用ADD RMTTRAIL指定目標資料庫trail位置
ADD RMTTRAIL <remote_trail_2>, EXTRACT <pump_2>

EXTRACT:該引數指明剛剛建立的“中介投遞程式”將資料寫入目標資料庫的trail檔案。

下面看看投遞程式的配置檔案
-- Identify the data pump group:
EXTRACT <pump_2>
-- Note that no database login parameters are required in this case.
-- State whether or not source and target definitions are identical: SOURCEDEFS <full_pathname> | ASSUMETARGETDEFS
-- Specify the target definitions file if SOURCEDEFS was used: TARGETDEFS <full_pathname>
-- Specify decryption if input trail is encrypted:
DECRYPTTRAIL <encryption options>
-- Specify the name or IP address of the target system
-- and optional encryption of data over TCP/IP:
RMTHOST <target_2>, MGRPORT <portnumber>, ENCRYPT <encryption options> -- Specify the remote trail and encryption options on the target system: ENCRYPTTRAIL [<encryption options>]
RMTTRAIL <remote_trail_2>
-- Allow mapping, filtering, conversion or pass data through as-is; [PASSTHRU | NOPASSTHRU]
-- Specify tables to be captured:
TABLE <owner>.<table>;

文件最後還有一部分是級聯配置,也就是雙向複製,就不在此列出了。

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

相關文章