GoldenGate<二> configure data pump

viadeazhu發表於2010-04-22

    在《GoldenGate step by step installation and configuration》中介紹了最簡單的配置,在其最後提到了使用data pump程式作為傳遞資訊的方案來隔離Source的EXTRACT程式和Target的trail檔案。

在GG Admin Guide中,"In most cases, it is best practice to use a data pump."

    這裡,將介紹如何配置data pump程式。

1.在Source停止EXTRACT和MGR process

GGSCI (xxx) 27> stop extract haoext

Sending STOP request to EXTRACT HAOEXT ...
Request processed.


GGSCI (xxx) 28> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)? y

Sending STOP request to MANAGER ...
Request processed.
Manager stopped.

2.對Source端的MGR新增PURGEOLDEXTRACTS引數用來控制自動清除本地trail檔案

GGSCI (xxx) 36> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS TRUE
~

"dirprm/mgr.prm" 2 lines, 27 characters written

GGSCI (xxx) 37> start mgr

Manager started.


GGSCI (xxx) 38> info mgr

Manager is running (IP port xxx.7809).

3.在Source新增EXTRACT

GGSCI (xxx) 40> add EXTRACT HAOEXT2, tranlog,begin now
EXTRACT added.

這裡注意新增的是EXTTRAIL,不是RMTTRAIL,所以EXTRACT程式將把抓取的資訊放到本地的trail檔案裡。
GGSCI (xxx) 41> ADD EXTTRAIL ./dirdat/zz, EXTRACT HAOEXT2,  megabytes 50
EXTTRAIL added.


GGSCI (xxx) 42> EDIT PARAMS HAOEXT2


EXTRACT HAOEXT2
SETENV (ORACLE_SID=MOT)
USERID
, PASSWORD GGS
EXTTRAIL ./dirdat/zz
TABLE HAOZHU_USER.GGDUMP;
~
"dirprm/haoext2.prm" [New File] 5 lines, 116 characters written


GGSCI (xxx) 43> start extract HAOEXT2

Sending START request to MANAGER ...
EXTRACT HAOEXT2 starting


GGSCI (xxx) 44> info HAOEXT2

EXTRACT    HAOEXT2   Initialized   2010-04-22 06:44   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:05:15 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2010-04-22 06:44:00  Seqno 0, RBA 0

4.在Source新增data pump EXTRACT程式

GGSCI (xxx) 60> ADD EXTRACT HAODP, EXTTRAILSOURCE ./dirdat/zz, BEGIN now
EXTRACT added.


GGSCI (xxx) 61> ADD RMTTRAIL ./dirdat/zz, EXTRACT HAODP, megabytes 50
RMTTRAIL added.


GGSCI (xxx) 62> EDIT PARAMS HAODP


EXTRACT HAODP
SETENV (ORACLE_SID=MOT)
USERID
, PASSWORD GGS
RMTHOST xxx.xxx.xxx.xxx, MGRPORT 7809
RMTTRAIL ./dirdat/zz
TABLE HAOZHU_USER.GGDUMP;
~
"dirprm/haodp.prm" [New File] 6 lines, 153 characters written


GGSCI (xxx) 63> start extract HAODP

Sending START request to MANAGER ...
EXTRACT HAODP starting

GGSCI (xxx) 66> info HAODP

EXTRACT    HAODP     Last Started 2010-04-22 07:02   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:00 ago)
Log Read Checkpoint  File ./dirdat/zz000000
                     2010-04-22 07:00:56.000000  RBA 895

 5.在Target端跟上面一樣新增引數PURGEOLDEXTRACTS並重啟MGR

GGSCI (xxx) 14> stop REPLICAT HAOREP

Sending STOP request to REPLICAT HAOREP ...
Request processed.


GGSCI (xxx) 15> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)? y

Sending STOP request to MANAGER ...
Request processed.
Manager stopped.


GGSCI (xxx) 16> edit params mgr


PORT 7809
PURGEOLDEXTRACTS TRUE
~
"dirprm/mgr.prm" 2 lines, 32 characters written


GGSCI (xxx) 17> start mgr

Manager started.

6.建立REPLICAT Group(同前面一樣)

GGSCI (xxx) 19> add replicat HAOREP2, EXTTRAIL ./dirdat/zz, nodbcheckpoint
REPLICAT added.


GGSCI (xxx) 20> edit params HAOREP2


REPLICAT HAOREP2
ASSUMETARGETDEFS
SETENV (ORACLE_SID=DC1)
USERID GGS, PASSWORD GGS
map HAOZHU_USER.GGDUMP , target HAOZHU_USER.GGDUMP;
~
"dirprm/haorep2.prm" [New File] 5 lines, 135 characters written


GGSCI (xxx) 21> start REPLICAT HAOREP2

Sending START request to MANAGER ...
REPLICAT HAOREP2 starting

7.測試

在Source:

SQL> insert into ggdump select * from dba_objects;

9895 rows created.

SQL> commit;

Commit complete.

在Target:

SQL> select count(*) from ggdump;

  COUNT(*)
----------
      9895

可以找到這樣的SQL:

SQL_TEXT
----------------------------------------------------------------
INSERT INTO "HAOZHU_USER"."GGDUMP" ("OWNER","OBJECT_NAME","SUBOB
JECT_NAME","OBJECT_ID","DATA_OBJECT_ID","OBJECT_TYPE","CREATED",
"LAST_DDL_TIME","TIMESTAMP","STATUS","TEMPORARY","GENERATED","SE
CONDARY") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:
a11,:a12)

SQL> select EXECUTIONS,module,PARSING_SCHEMA_NAME from v$sql where hash_value=1142510906;

EXECUTIONS MODULE                                                           PARSING_SCHEMA_NAME
---------- ---------------------------------------------------------------- ------------------------------
      9895
(TNS V1-V3)                                     GGS

在Target shutdown replicat和mgr之後,

此時Target端的trail檔案被這個遠端程式使用著:

> fuser zz000000
zz000000:    17497o

> ptree 17497
18089 zsched
  17497 ./server -p 7841 -k -l /xxx/ggserr.log

> kill -9 17497

然後在Source產生一點dml,接著觀察Source的error log,發現同樣的在N次(超過10次)之後,data pump EXTRACT程式死掉了。

但EXTRACT到本地trail檔案的程式還活著。

GGSCI (xxx) 98> info HAODP

EXTRACT    HAODP     Last Started 2010-04-22 07:06   Status ABENDED
Checkpoint Lag       00:00:00 (updated 00:03:08 ago)
Log Read Checkpoint  File ./dirdat/zz000001
                     2010-04-22 07:24:35.000000  RBA 2912657


GGSCI (xxx) 99> info HAOEXT2

EXTRACT    HAOEXT2   Last Started 2010-04-22 07:06   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2010-04-22 09:35:12  Seqno 64, RBA 1620992

如何恢復?

重啟Target mgr和replicat,然後重啟Source data pump EXTRACT即可。

至於將data pump EXTRACT的資訊放到中間server,其實也就是多加一對EXTRACT而已,沒什麼區別。

至於cascade replication也很易懂,即配兩次而已。

 

 

 

 

 

 

 

 

 

 

 

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

相關文章