OGG token参数的使用

一般使用场景是源表结构和目标端表结构不一样,源端可以使用一些变量来填充目标表的字段, 过程如下:

源端表结构

SQL> desc ogg.ggs_command

 Name                Null?    Type

 -------------------------------------------------

 CMD                        VARCHAR2(10)

 OPER_TIME                  DATE

 

SQL> 

目标端表结构

SQL> desc ogg.ggs_command

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 CMD                                                VARCHAR2(10)

 OPER_TIME                                          DATE

 EXT_HOSTNAME                                       VARCHAR2(10)

 EXT_PRONAME                                        VARCHAR2(10)

 EXT_TIMESTAMP                                      VARCHAR2(16)

 EXT_SCN                                            NUMBER

 REP_PRONAME                                        VARCHAR2(10)

 REP_SCN                                            NUMBER

 

SQL> 

源端配置参数(配置表ogg.command)

[oracle@rac1]$ cat gg_cmd_sou.obey 

TABLE OGG.GGS_COMMAND, TOKENS ( &

  TKN-EXT_HOSTNAME  = @GETENV ('GGENVIRONMENT','HOSTNAME'), &

  TKN-EXT_PRONAME   = @GETENV ('GGENVIRONMENT','GROUPNAME'), &

  TKN-EXT_TIMESTAMP = @GETENV ('TRANSACTION','TIMESTAMP'), &

  TKN-EXT_SCN       = @GETENV ('TRANSACTION','CSN') &

);

[oracle@rac1]$ 

源端抽取进程配置

GGSCI (rac1.localdomain) 2> view params extes

 

extes

obey ./dirprm/env_set.obey

obey ./dirprm/ext_set.obey

userid ogg, password ogg

DISCARDFILE ./dirrpt/extes.dsc, APPEND, MEGABYTES 1000

EXTTRAIL ./dirdat/es2/w1, MEGABYTES 1000

obey ./dirprm/extes_list.obey

obey ./dirprm/gg_cmd_sou.obey      《=====源端配置读取配置参数

TABLE ogg.*;

 

 

GGSCI (rac1.localdomain) 3> 

目标端的配置参数

[oracle@qxy dirprm]$ cat gg_cmd_tar.obey 

ALLOWDUPTARGETMAP

IGNORETRUNCATES

MAP OGG.GGS_COMMAND, TARGET OGG.GGS_COMMAND, &

  FILTER (@STRCMP(CMD,'HIS_CHECK')=0), EVENTACTIONS(CHECKPOINT BOTH), &

  SQLEXEC(ID GET_TAR_SCN_A, QUERY 'SELECT CURRENT_SCN FROM V$DATABASE', NOPARAMS, AFTERFILTER), &

  COLMAP(USEDEFAULTS, &

   EXT_HOSTNAME = @TOKEN('TKN-EXT_HOSTNAME'), &

   EXT_PRONAME = @TOKEN('TKN-EXT_PRONAME'), &

   EXT_TIMESTAMP = @TOKEN('TKN-EXT_TIMESTAMP'), &

   EXT_SCN = @TOKEN('TKN-EXT_SCN'), &

   REP_PRONAME = @GETENV('GGENVIRONMENT','GROUPNAME'), &

   REP_SCN = GET_TAR_SCN_A.CURRENT_SCN );

 

MAP OGG.GGS_COMMAND, TARGET OGG.GGS_COMMAND, &

  FILTER (@STRCMP(CMD,'HIS_STOP')=0), EVENTACTIONS(STOP CHECKPOINT BOTH), &

  SQLEXEC(ID GET_TAR_SCN_B, QUERY 'SELECT CURRENT_SCN FROM V$DATABASE', NOPARAMS, AFTERFILTER), &

  COLMAP(USEDEFAULTS, &

   EXT_HOSTNAME = @TOKEN('TKN-EXT_HOSTNAME'), &

   EXT_PRONAME = @TOKEN('TKN-EXT_PRONAME'), &

   EXT_TIMESTAMP = @TOKEN('TKN-EXT_TIMESTAMP'), &

   EXT_SCN = @TOKEN('TKN-EXT_SCN'), &

   REP_PRONAME = @GETENV('GGENVIRONMENT','GROUPNAME'), &

   REP_SCN = GET_TAR_SCN_B.CURRENT_SCN );

[oracle@qxy dirprm]$ 

注:12的版本是要使用单引号.

目标端的replicat

GGSCI (qxy.localdomain) 3> view params rep_fr

 

replicat rep_fr

obey ./dirprm/env_set.obey

obey ./dirprm/rep_set.obey

discardfile ./dirrpt/rep_fr.dsc,append,megabytes 1000

obey ./dirprm/fsrpt_map.obey

obey ./dirprm/gg_cmd_tar.obey

 

 

GGSCI (qxy.localdomain) 4> 

源端对表ogg.ggs_command插入一条数据

SQL> into OGG.GGS_COMMAND values('HIS_STOP',sysdate);

1 row created.

 

SQL>commit;

目标端的ogg.ggs_command对应数据

SQL> select * from ogg.ggs_command;

 

CMD        OPER_TIME           EXT_HOSTNA EXT_PRONAM EXT_TIMESTAMP       EXT_SCN REP_PRONAM    REP_SCN

---------- ------------------- ---------- ---------- ---------------- ---------- ---------- ----------

HIS_STOP   2018-06-06 06:31:14 rac1.local EXTES      2018-06-06 06:31   23493769 REP_FR       23463065

 

SQL> 
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值