SQL error 1403 mapping to

来源:互联网 发布:微星网络协议栈开吗 编辑:程序博客网 时间:2024/04/29 17:51
WARNING OGG-01154  Oracle GoldenGate Delivery for Oracle, rep1.prm:  SQL error 1403 mapping YYYYY.TABLE_CUR to YYYYY.TABLE_CUR OCI Error ORA-01403: no data found, SQL <UPDATE "YYYYY"."TABLE_CUR" SET "LOGOUT_TIME" = :a1 WHERE "USER_ID" = :b0>.
WARNING OGG-01003  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Repositioning to rba 95422336 in seqno 1.
ERROR   OGG-01296  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Error mapping from YYYYY.TABLE_CUR to YYYYY.TABLE_CUR.
gg中的1403造成的原因:
1、两端表结构不一致
使用desc检查两端的表结构,如果没有配置DDL,是非常有可能的
解决方法是:重新初始化
2、附加日志错误
在源端没有对这张表显示增加补充日志,也会报这个错误
info trandata schema.objectname
检查该对象的trandata是否enable,若为diable则需要先增加附加日志,然后再初始化该表
3、初始化方法错误导致不一致

4、目标端级联删除、trigger没有被禁止
select 'alter table '||owner||'.'||table_name||' disableconstraint '||constraint_name||';' 
 from dba_constraints 
 where constraint_type in ('R') and 
 owner in('YYYYY') 
 order by status,owner; 
select 'alter trigger '||owner||'.'||trigger_name||' disable;' 
 from dba_triggers 
 where owner in('YYYYY') 
 order by status,owner;
执行查询出来的语句
5、该表存在不写日志的DML操作
检查该表是否为force logging

根据以上报错:
1、检查是否添加补充日志
GGSCI (ecardpdb3) 4> dblogin userid ogg, password oggrep
Successfully logged into database.

GGSCI (ecardpdb3) 5> INFO TRANDATA YYYYY.TABLE_CUR

Logging of supplemental redo log data is enabled for table YYYYY.TABLE_CUR.

Columns supplementally logged for table YYYYY.TABLE_CUR: USER_ID.
2、检查discardfile
more /oracle/ogg/discards
Oracle GoldenGate Delivery for Oracle process started, group REP1 discard file opened: 2014-12-23 20:33:32

Key column NAME (1) is missing from delete on table YYYYY.TABLE_CUR
Missing 1 key columns in delete for table YYYYY.TABLE_CUR.
Current time: 2014-12-24 00:50:53
Discarded record from action ABEND on error 0

Aborting transaction on /oracle/oggrep/dirdat/lr beginning at seqno 3 rba 1404
                         error at seqno 3 rba 1404
Problem replicating YYYYY.TABLE_CUR to YYYYY.TABLE_CUR
Mapping problem with delete record (target format)...
*
ID = NULL
*
Process Abending : 2014-12-24 00:50:53
3、确定出是在ID=NULL这一行出现了问题,检查ogg两端的对应表的两端的满足该条件的记录的区别

最安全的解决办法就是重新初始化,当然如果对于个别的数据出入我们可以选择跳过部分数据,然后根据源端和目标端结合discardfile来手动修改数据源,以及配合handlecollision参数来解决等。
0 0
原创粉丝点击