一般使用场景是源表结构和目标端表结构不一样,源端可以使用一些变量来填充目标表的字段, 过程如下:
源端表结构
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小时内删除。
留言与评论(共有 0 条评论) |