SQL error 1403 mapping to

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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参数来解决等。
驱动加载成功 Thu Jun 08 22:43:18 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. java.sql.SQLException: No timezone mapping entry for 'GTM+8' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:85) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229) at com.til.jdbc.JDBC.main(JDBC.java:16) Caused by: com.mysql.cj.exceptions.WrongArgumentException: No timezone mapping entry for 'GTM+8' at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.ref
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值