OGG中TOKENS的使用

阅读: 评论:0

OGG中TOKENS的使用

OGG中TOKENS的使用

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

源端表结构

SQL> s_commandName                Null?    Type-------------------------------------------------CMD                        VARCHAR2(10)OPER_TIME                  DATESQL> 

目标端表结构

SQL> s_commandName                                      Null?    Type----------------------------------------- -------- ----------------------------CMD                                                VARCHAR2(10)OPER_TIME                                          DATEEXT_HOSTNAME                                       VARCHAR2(10)EXT_PRONAME                                        VARCHAR2(10)EXT_TIMESTAMP                                      VARCHAR2(16)EXT_SCN                                            NUMBERREP_PRONAME                                        VARCHAR2(10)REP_SCN                                            NUMBERSQL> 

源端配置参数(配置表oggmand)

[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 extesextes
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_frreplicat 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.obeyGGSCI (qxy.localdomain) 4> 

源端对表s_command插入一条数据

SQL> into OGG.GGS_COMMAND values('HIS_STOP',sysdate);
1 row created.SQL>commit;
目标端的s_command对应数据
SQL> select * s_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       23463065SQL> 



本文发布于:2024-01-28 23:03:21,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645420610931.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:OGG   TOKENS
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23