Using GoldenGate EVENTACTIONS to customize processing,goldengate
EVENTACTIONS 可以指定一些關鍵字來觸發一些事件,關鍵字有:IGNORE, DISCARD, ABORT, STOP, SHELL, TRACE, LOG
For Example:GGSCI (zbdba1) 6> view param ext1EXTRACT EXT1setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )USERID ogg,PASSWORD oggDDL &INCLUDE MAPPED OBJTYPE 'TABLE' &INCLUDE MAPPED OBJTYPE 'IDNEX' &INCLUDE MAPPED OBJTYPE 'SEQUENCE' &INCLUDE MAPPED OBJTYPE 'VIEW' &INCLUDE MAPPED OBJTYPE 'PROCEDURE' &INCLUDE MAPPED OBJTYPE 'FUNCTION' &INCLUDE MAPPED OBJTYPE 'PACKAGE' &INCLUDE MAPPED OBJTYPE 'MATERIALIZED VIEW' &EXCLUDE OPTYPE COMMENTDDLOPTIONS ADDTRANDATA NOCROSSRENAME REPORTREPORTCOUNT EVERY 1 MINUTES,RATEDISCARDFILE ./dirrpt/EXTSA.DSC,APPEND,MEGABYTES 1024THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000DBOPTIONS ALLOWUNUSEDCOLUMNWARNLONGTRANS 2H,CHECKINTERVAL 3Mexttrail ./dirdat/saFETCHOPTIONS NOUSESNAPSHOT,FETCHPKUPDATECOLS,MISSINGROW REPORTtable zbdba.test;GGSCI (zbdba1) 7> view param ext2EXTRACT EXT2passthruRMTHOST 192.168.56.61,MGRPORT 7839,COMPRESSRMTTRAIL ./dirdat/satable zbdba.test;GGSCI (zbdba2) 6> view param rep1REPLICAT rep1ASSUMETARGETDEFSUSERID ogg, PASSWORD oggdiscardfile ./dirdat/rep1_discard.txt,append,megabytes 5DDL INCLUDE MAPPEDDDLOPTIONS REPORT--BATCHSQLDBOPTIONS DEFERREFCONSTDBOPTIONS LOBWRITESIZE 102400HANDLECOLLISIONSDDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20--grouptransops 1--maxtransops 1APPLYNOOPUPDATESMAP zbdba.test, TARGET zbdba.test,FILTER (@STREQ (OWNER, "ZBDBA" )), EVENTACTIONS ( IGNORE TRANS , STOP, SHELL "/ogg/hello.sh" );
這裡指定當test表中的owner欄位為ZBDBA市,就忽略事務,停止replicat進程,執行shell指令碼。
那麼我們來測試一下:
Source:SQL> insert into test(owner,table_name) values('ZBDBA','zbdba');1 row created.SQL> commit 2 ;Commit complete.
Target:tail -100f ggserr.log2015-03-09 22:51:01 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep1.prm: REPLICAT REP1 started.2015-03-09 22:51:37 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, rep1.prm: No unique key is defined for table 'TEST'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.2015-03-09 22:51:37 INFO OGG-01286 Oracle GoldenGate Delivery for Oracle, rep1.prm: Executing shell command '/ogg/hello.sh' due to SHELL event for target table ZBDBA.TEST in file /ogg/dirdat/sa000004, RBA 1314.2015-03-09 22:51:37 INFO OGG-01287 Oracle GoldenGate Delivery for Oracle, rep1.prm: Successfully executed shell command '/ogg/hello.sh'.2015-03-09 22:51:37 WARNING OGG-01283 Oracle GoldenGate Delivery for Oracle, rep1.prm: Stopping process due to STOP event for target table ZBDBA.TEST in file /ogg/dirdat/sa000004, RBA 1314 STOP request pending end-of-transaction (1 records so far).2015-03-09 22:51:37 INFO OGG-00994 Oracle GoldenGate Delivery for Oracle, rep1.prm: REPLICAT REP1 stopped normally.
發現進程停止並且執行指令碼
查看進程:
GGSCI (zbdba2) 7> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING REPLICAT STOPPED REP1 00:00:06 00:07:59
查看指令碼:
[ogg@zbdba2 ogg]$ cat hello.sh#!/bin/bashtouch zbdba.txt[ogg@zbdba2 ogg]$ ll zbdba.txt-rw-rw-rw- 1 ogg oinstall 0 Mar 9 22:51 zbdba.txt