Oracle goldengate的触发器错误 OGG-00869

2014-11-24 18:23:51 · 作者: · 浏览: 0

Goldengate在复制进程replicat报错:


如下日志:


2011-06-24 16:25:21 WARNING OGG-00869 OCI Error ORA-04098: trigger 'T_MLOG_LOG_DTL_SUBMIT_STATE' is invalid and failed re-validation (status = 4098), SQL .


2011-06-24 16:25:21 WARNING OGG-01004 Aborted grouped transaction on 'MLOG_ADM_DAILY_LOG_ORG_DTL', Database error 4098 (ORA-04098: trigger 'T_MLOG_LOG_DTL_SUBMIT_STATE' is invalid and failed re-validation).


2011-06-24 16:25:21 WARNING OGG-01003 Repositioning to rba34721235 inseqno 25.


2011-06-24 16:25:21 WARNING OGG-01003 Repositioning to rba34721235 inseqno 25.


Source Context :


SourceModule : [er.main]


SourceID : [/mnt/ecloud/workspace/Build_OpenSys_r11.1.1.0.15_001_[41784]/perforce/src/app/er/rep.c]


SourceFunction : [take_rep_err_action]


SourceLine : [15809]


2011-06-24 16:25:21 ERROR OGG-01296 Error mapping from MLOG_ADM_DAILY_LOG_ORG_DTL to MLOG_ADM_DAILY_LOG_ORG_DTL.


可以在目标端数据库disable该触发器。


查询需要disable的触发器


select'alter trigger '||owner||'.'||trigger_name||' disable;'fromdba_triggers twherewner='UserTest'
andt.status!=
'DISABLED'


执行查询的脚本:


altertriggerUserTest.T_MLOG_LOG_DTL_SUBMIT_STATEdisable;


在源库修改触发器,或传输到目标端的数据库,并且把目标端的触发器修改成enable。


所在需要在目标端数据库的replicat进程限制触发器:


DDL INCLUDE OBJNAME "UserTest.*", &


EXCLUDE OBJNAME "TRIGGER",&