goldengate 灾备端外键约束导致 ora-01403 (delete)

简介:

bl2灾备端报错ora-01403

2016-07-11 14:10:52  WARNING OGG-01004  Aborted grouped transaction on 'ESOP_CRM.PRODUCTORDERCHARACTER', Database error 1403 (OCI Error ORA-01403: no data found, SQL <DELETE FROM "ESOP_CRM"."PRODUCTORDERCHARACT

ER"  WHERE "PRODUCTORDERCHARACTERID" = :b0>).

 

2016-07-11 14:10:52  WARNING OGG-01003  Repositioning to rba 119862786 in seqno 12144.

 

2016-07-11 14:10:52  WARNING OGG-01154  SQL error 1403 mapping ESOP_CRM.PRODUCTORDERCHARACTER to ESOP_CRM.PRODUCTORDERCHARACTER OCI Error ORA-01403: no data found, SQL <DELETE FROM "ESOP_CRM"."PRODUCTORDERCHARA

CTER"  WHERE "PRODUCTORDERCHARACTERID" = :b0>.

检查discard文件发现

OCI Error ORA-01403: no data found, SQL <DELETE FROM "ESOP_CRM"."PRODUCTORDERCHARACTER"  WHERE "PRODUCTORDERCHARACTERID" = :b0>

Aborting transaction on ./dirdat/t1 beginning at seqno 12144 rba 119862786

                         error at seqno 12144 rba 119862936

Problem replicating ESOP_CRM.PRODUCTORDERCHARACTER to ESOP_CRM.PRODUCTORDERCHARACTER

Record not found

Mapping problem with delete record (target format)...

*

PRODUCTORDERCHARACTERID = 4803777486

*

 

Continuing to discard records up to the last discarded record from action ABEND

 

Operation discarded from seqno 12144 rba 119862786

Aborted delete from ESOP_CRM.PRODUCTORDER to ESOP_CRM.PRODUCTORDER (target format)...

*

PRODUCTORDERID = 140532617

*

Process Abending : 2016-07-11 14:10:52

检查灾备端对应表的外键约束

SELECT * FROM dba_constraints t WHERE t.constraint_type='R' AND owner='ESOP_CRM' AND table_name='PRODUCTORDERCHARACTER';

发现外键约束SYS_C0026901

失效外键约束

ALTER TABLE ESOP_CRM.PRODUCTORDERCHARACTER DISABLE CONSTRAINT SYS_C0026901 ;

再次启动复制进程正常





     本文转自hbxztc 51CTO博客,原文链接:http://blog.51cto.com/hbxztc/1874835,如需转载请自行联系原作者


相关文章
|
4月前
|
存储 SQL 关系型数据库
探索数据库的世界:DB、DBMS、DBA、DBS的全面介绍
探索数据库的世界:DB、DBMS、DBA、DBS的全面介绍
98 0
|
11月前
|
Oracle 关系型数据库
oracle 12c新功能 recover table恢复单个表
不支持sys用户和system表空间的表
|
Oracle 关系型数据库 数据库
[20180109]如何通过备份确定dbid和dbname
[20180109]如何通过备份确定dbid和dbname.txt --//如果仅仅存在备份集合,如何确定这个数据库的dbid和dbname呢?很简单,通过另外一个数据库使用rman的catalog命令就可以知道备份 --//集原来数据库的dbid和dbname,通过测试来说明: 1.
1216 0