SQL error 1403 mapping to

本文详细介绍了Oracle GoldenGate Delivery for Oracle过程中遇到的常见错误及其解决策略,包括表结构不一致、附加日志缺失、初始化方法错误、目标端级联删除与触发器未禁用等问题,并提供了具体的排查步骤与解决方案。
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参数来解决等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值