您的位置:首页 > 数据库 > Oracle

Oracle Goldengate实现插入记录的当前时间

2014-07-28 18:30 453 查看

需求

实现在目标端插入某行时,记录下当前时间,其他DML(update)操作不记录。

配置方法

1,参考的文章

参考文章:http://www.anbob.com/archives/2000.html

还有控制insert ,update,delete时对某列赋值的操作

表结构不同时需要defgen生成定义文件效率相对于ASSUMETARGETDEFS 要慢一些。
本测试修改完配置文件后都有重启进程使修改生效
使用colmap 可以对表结构做映射关系
使用token function可以从源端附加变量值
使用get/IGNORE[DML]可以做基于事务的filter

DYNAMICRESOLUTION为了提高性能在控制表名解析时只读取一次,这样在mapexclude时会存在整个map table没有按顺序而是全部排除.

goldengate的函数很多,可参考 OGG官方联机手册

GGSCI (ggsdb) 1> view params ricme
map icme.test_s, target icme.test_t,
COLMAP(usedefaults,
create_date =@IF(@STREQ(@GETENV("GGHEADER","OPTYPE"),"INSERT"),@DATENOW(),@COLSTAT(MISSING)),
last_update_date=@datenow()

2,配置示例一

REPLICAT RP5

setenv (NLS_LANG=American_america.zhs16gbk)

USERID gg, PASSWORD *******

reperror (12841, ignore)

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/RP5.DSC, PURGE

MAP uc.YY, TARGET  XX.YY,keycols(id),
SQLEXEC (ID lookup, QUERY " select sysdate now from dual "),

colmap(USEDEFAULTS,ROWCREATETIME  = @if(@streq(@getenv("GGHEADER","OPTYPE"),"INSERT"),@GETVAL (lookup.now),@colstat(MISSING)));

解释:只有insert的时候,对该列赋值当前时间。

这种配置在ogg11.2.0的版本中有一个bug.

错误描述:OGG-00665  OCI Error executing alter session disable parallel dml

*******************************************************************************************************************

***2014--6-12碰到OGG的bug  

***Bug 13977090 : 11.2.1 REPLICAT ABENDS: OCI ERROR EXECUTING ALTER SESSION DISABLE PARALLEL DML

改用如下配置解决问题。注意观察和上面配置不一样的地方是去掉了sqlexec

*******************************************************************************************************************;

3,配置示例二

REPLICAT RP5

setenv (NLS_LANG=American_america.zhs16gbk)

USERID gg, PASSWORD *******

reperror (12841, ignore)

HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/RP5.DSC, PURGE

MAP uc.YY, TARGET  XX.YY,keycols(id),

colmap(USEDEFAULTS,ROWCREATETIME  = @if(@streq(@getenv("GGHEADER","OPTYPE"),"INSERT"),@DATENOW(),@colstat(MISSING)));

相对于上一个简单多了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: