GoldenGate 使用小結

here I only show the meaning of params.

add extract <group name>, TRANLOG, BEGIN NOW, THREADS <thread number>

其中group name表示這個Extract group的名字

TRANLOG 表示使用事務日誌的方式

BEGIN NOW 表示從現在開始,你也可以指定一個具體的開始時間

THREADS 表示從哪個instance上運行,只對RAC環境有用,單機環境比需要指定該Option


GoldenGate 軟件是一種基於日誌的結構化數據複製軟件,它通過解析源數據庫在線日誌或歸檔日誌獲得數據的增量變化,再將這些變化應用到目標數據庫,從而實現源數據庫與 目標數據庫同步。GoldenGate 可以在異構的IT基礎結構(包括幾乎所有常用操作系統平臺和數據庫平臺)之間實現大量數據亞秒一級的實時複製,從而在可以在應急系統、在線報表、實時數據 倉庫供應、交易跟蹤、數據同步、集中/分發、容災等多個場景下應用。

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

環境要求:

1. 支持的平臺

支持的Oracle Database 版本

在當前的Oracle GoldenGate 10.4版本中,支持如下Oracle Database版本

Oracle 8i (DML support only)
Oracle 9.1 and 9.2 (DML and DDL support)
Oracle 10.1 and 10.2 (DML and DDL support)
Oracle 11g (DML and DDL support)

支持的操作系統平臺

幾乎所有主流的操作系統,GoldenGate都支持

Windows 2000, 2003, XP,Linux,Sun Solaris,HP NonStop,HP-UX

2. 操作系統需求

內存要求

GoldenGate對操作系統內存的需求主要取決於Extract和Replicat進程數,一般建議>2G。

DISK空間需求

由於要數據庫必須設置爲歸檔模式,所以要求至少保存7天以上的日誌,建議剩餘空間在10G~100G之間。

對於RAC環境

對 於RAC環境,GoldenGate的相關軟件和工作目錄需要配置在shared disk環境中,從而保證對所有node都是可用的,從任何一個node都可以啓動GoldenGate的進程,當其中一個node出現異常時,可以在剩 餘的node啓動而無須修改任何配置參數。否則如果運行在單個node上的話,需要將剩餘node中的歸檔日誌通過一定的技術共享出來並加載到 GoldenGate運行節點。

對於RAC環境,GoldenGate要求所有node必須保持時鐘同步,同時必須保持所有RAC node和運行extract進程的node節點保持時鐘同步。因爲GoldenGate會比較本地的系統時間和commit的時間戳。所以不能忽略這個 設置。否則可能導致數據複製的紊亂。

3. 數據庫需求

數據庫客戶端

GoldenGate需要安裝full Oracle client,以便於GoldenGate程序訪問Oracle XDK libraries。

數據庫用戶

建議使用sys或任何其他具有sysdba/sysasm權限的用戶。

數據庫配置

對於Source Oracle Database要求

數據庫處於歸檔模式下

打開補充日誌

打開force logging

分別配置連接源數據庫和目標數據庫的主機字符串

建立一個專門的用戶如Goldengate來負責將所需的數據同步到遠端,而不是用已有的業務用戶
這個用戶需要哪些權限呢?
Create user goldengate identified by goldengate default tablespace users temporary tablespace temp quota unlimited on users ;
GRANT CONNECT TO goldengate;
GRANT ALTER ANY TABLE TO goldengate;
GRANT ALTER SESSION TO goldengate;
GRANT CREATE SESSION TO goldengate;
GRANT FLASHBACK ANY TABLE TO goldengate;
GRANT SELECT ANY DICTIONARY TO goldengate;
GRANT SELECT ANY TABLE TO goldengate;
GRANT RESOURCE TO goldengate;
GRANT drop ANY TABLE TO goldengate;
GRANT DBA TO goldengate;

注*

補充日誌是否打開查詢語句:

select supplemental_log_data_min from v$database;

打開補充日誌語句:

alter database add supplemental log data;

打開force logging語句:

Alter database force logging;

配置golengate

環境:os linux 4.7 x86_64 數據庫:10.0.2.1 64位

IP設置:源 192.168.8.1 目標 192.168.8.2

SID: ORCL

1. 安裝goldengate 軟件

在oracle官方網站上下載goldengate對應平臺的安裝程序

進入到GoldenGate的安裝目錄.
運行

GGSCI
In GGSCI, issue the following command to create the GoldenGate working directories.
CREATE SUBDIRS
Issue the following command to exit GGSCI.
EXIT

2. 數據複製初始化

GoldenGate中支持的data load 方法有

Loading data with a database utility

Loading data from file to Replicat

Loading data from file to database utility

Loading data with a GoldenGate direct load

Loading data with a direct bulk load to SQL*Loader

Loading tables with Teradata table copy

Loading data with Teradata load utilities

* 這點我沒怎麼研究,我採用的rman異地恢復

3. 配置進程

第一步 : 在源數據庫和目標數據庫分別配置管理進程mgr GGSCI> edit params mgr
port 7809
(保存退出)
GGSCI> start mgr
Manager started.
GGSCI> info all
ProgramStatus Group Lag ime Since Chkpt
MANAGER RUNNING
(可以正常啓動)

第二步:源數據庫增加兩個進程

*.一般源數據庫需要應配置兩個進程,一個負責抽取數據(ZLE_01),另一個負責投遞數據(ZLE_02),默認只支持DML,如果要支持DDL需要執行一些單獨的配置。

在源數據庫系統中執行如下命令增加一個Extract group,詳細的ADD EXTRACT語法參見官方手冊說明或GGSCI的online help.

GGSCI> add extract <group name>, TRANLOG, BEGIN NOW, THREADS <thread number>

其中group name表示這個Extract group的名字

TRANLOG 表示使用事務日誌的方式

BEGIN NOW 表示從現在開始,你也可以指定一個具體的開始時間

THREADS 表示從哪個instance上運行,只對RAC環境有用,單機環境比需要指定該Option

2.1 配置抽取進程

我這裏是單機環境,extract group name定義爲zle_01

GGSCI > DBLOGIN USERID goldengate@orcl1, PASSWORD goldengate

GGSCI > add extract ZLE_01, tranlog,begin now
EXTRACT added.

GGSCI > add RMTTRAIL ./dirdat/ra, extract zle_01, megabytes 50

查看一下剛纔定義的這個extract process的結果
GGSCI > info extract zle_01
EXTRACT ZLE_01 Initialized 2010-01-19 11:50 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:00:22 ago)

Log Read Checkpoint Oracle Redo Logs

2010-01-19 11:50:39 Seqno 0, RBA 0

補充一個命令: info extract zle_01, showch 看的更詳細

爲該抽取Extract進程配置參數文件,在源數據庫執行如下命令

GGSCI> edit param zle_01

增加如下內容
EXTRACT ZLE_01
SETENV (ORACLE_SID=ORCL)
USERID goldengate@ORCL1, PASSWORD goldengate
RMTHOST 192.168.8.1, MGRPORT 9001
RMTTRAIL ./dirdat/ra
TABLE ZLHIS.TEST;

RMTTRAIL告訴extract process需要將trail文件寫到哪裏

TABLE部分說明我這個Extract 進程只處理ZLHIS用戶下的TEST表

好了,到這裏就可以啓動上面定義的Capture 進程了,執行如下命令

GGSCI> start extract zle_01

Sending START request to MANAGER (‘mgr’) …
EXTRACT ZLE_01 starting

GGSCI>

Verify the results:
GGSCI> info EXTRACT ZLE_01, DETAIL
GGSCI> view REPORT ZLE_01

GGSCI> info extract ZLE_01

好了,到這裏就完成了一個最簡單的抽取Extract process的配置並啓動,下面來配置投遞Extract process進程。

2.2 配置投遞進程

在Source系統執行如下命令

GGSCI> ADD EXTRACT ZLE_02, EXTTRAILSOURCE ./dirdat/ra, BEGIN now
GGSCI> ADD RMTTRAIL ./dirdat/la, EXTRACT ZLE_02

*(./dirdat/la爲遠端接收目錄,必須存在)

GGSCI> edit params zle_02

添加內容如下:

extract ZLE_02

dynamicresolution

PASSTHRU

rmthost 192.168.8.2, mgrport 9001, compress

rmttrail ./dirdat/la

numfiles 3000

TABLE ZLHIS.TEST ;

GGSCI> start extract zle_02

Sending START request to MANAGER (‘mgr’) …
EXTRACT ZLE_02 starting

查看下狀態:

GGSCI> info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING ZLE_01 00:00:00 00:00:05

EXTRACT RUNNING ZLE_02 00:00:00 00:00:07

2.3配置接收進程

在目標系統(Target system)上執行如下命令增加一個複製組(Replicat Group)

GGSCI > DBLOGIN USERID goldengate@orcl2, PASSWORD goldengate

GGSCI>add replicat ZLR_01, EXTTRAIL ./dirdat/la , nodbcheckpoint

注,我這個中配置Extract process那個示例對應的,所以這裏的exttrail文件名正好是Extract process中定義的RMTTRAIL ./dirdat/la這點需要大家注意.

GGSCI> edit param ZLR_01

增加如下內容並保存退出

REPLICAT ZLR_01

SETENV (ORACLE_SID=ORCL)

USERID goldengate@ORCL2, PASSWORD goldengate

HANDLECOLLISIONS

ASSUMETARGETDEFS

allownoopupdates

dynamicresolution

numfiles 3000

DISCARDFILE ./dirrpt/ ZLR_01.DSC,append,megabytes 10

map ZLHIS.TEST , target ZLHIS.TEST ;

在Target系統中,執行如下命令

GGSCI> start replicat ZLR_01

Verify the results:
GGSCI> info replicat ZLR_01
REPLICAT ZLR_01 Last Started 2010-01-19 13:50 Status RUNNING

Checkpoint Lag 00:00:00 (updated 00:00:03 ago)

Log Read Checkpoint File ./dirdat/la000000

First Record RBA 0

查看下狀態:

GGSCI> info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

REPLICAT RUNNING ZLR_01 00:00:00 00:00:09

測試效果
在源數據庫分別插入、修改、刪除一條數據。

查看抽取進程狀態:

GGSCI> stats ZLE_01

Sending STATS request to EXTRACT ZLE_01 …

Start of Statistics at 2010-01-26 02:53:01.

Output to ./dirdat/ra:

Extracting from ZLHIS.TEST to ZLHIS.TEST:

*** Total statistics since 2010-01-26 02:15:01 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Daily statistics since 2010-01-26 02:15:01 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Hourly statistics since 2010-01-26 02:15:01 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Latest statistics since 2010-01-26 02:15:01 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

End of Statistics.

可以看到已經有記錄,而且已經抽取成功,再查看投遞進程,

GGSCI> stats ZLE_02

Sending STATS request to EXTRACT ZLE_02 …

Start of Statistics at 2010-01-26 03:04:13.

Output to /u01/ggs/dirdat/re:

Extracting from ZLHIS.TEST to ZLHIS.TEST:

*** Total statistics since 2010-01-26 02:14:25 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Daily statistics since 2010-01-26 02:14:25 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Hourly statistics since 2010-01-26 03:00:00 ***

No database operations have been performed.

*** Latest statistics since 2010-01-26 02:14:25 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

End of Statistics.

切換到目標數據庫環境,同樣查看接受應用進程。

GGSCI > stats ZLR_01

Sending STATS request to REPLICAT ZLR_01 …

Start of Statistics at 2010-01-26 05:58:36.

Replicating from ZLHIS.TEST to ZLHIS.TEST:

*** Total statistics since 2010-01-26 04:46:57 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Daily statistics since 2010-01-26 04:46:57 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

*** Hourly statistics since 2010-01-26 05:00:00 ***

Total inserts 0.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 2.00

*** Latest statistics since 2010-01-26 04:46:57 ***

Total inserts 1.00

Total updates 1.00

Total deletes 1.00

Total discards 0.00

Total operations 3.00

End of Statistics.

總結:

以上只是記錄了對於GoldenGate軟件測試的一小部分,總體感覺GoldenGate同Oracle的流複製非常類似,但又有所不同,對比其各自的應用,各有有缺點:

優點:

1. 安裝、配置簡單。

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

3. 支持異構複製,如不同用戶,不同數據庫平臺的複製,這也是其亮點所在。

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

缺點:

1. 官方的軟件目前都只支持64位系統。其實有32位的

2.由於是第三方工具,對環境要求比較高,特別是在LINUX環境下,對操作系統的字符集有所要求,主要是我們系統中的表名都是中文,必須要其對中文的支持。

3.在進行應用進程的參數配置時候發現,對於特別多的表複製,暫時不清楚GoldenGate是否有限制,因爲啓動的時候,我配置參數對ZLHIS所有表進行復制的時候,會提示“”錯誤,但是如果只對少數表或者單個表複製的時候,又不出現該提示,這個問題正在覈實。

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

綜上所述,GoldenGate同流複製比較起來的亮點還是在異構上,不過Oracle官方的說法是以後一流的Streams技術將被集成到GoldenGate中,這也是其發展的趨勢,其價值對於我們用戶的應用來說,還是很值得繼續深入研究。

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