1.现象
2020-08-26T13:26:23.854+0800 WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rp_czh.prm: SQL error 1 mapping HR.TEST to HR.TEST OCI Error ORA-00001: unique constraint (HR.PK_TEST) violated (status = 1), SQL <INSERT INTO "HR"."TEST" ("ID","NAME") VALUES (:a0,:a1)>. 2020-08-26T13:26:23.854+0800 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rp_czh.prm: Error mapping from HR.TEST to HR.TEST. 2020-08-26T13:26:23.862+0800 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rp_czh.prm: PROCESS ABENDING.
2.排查
检查discard文件,检查表数据,发现表中并没有discard文件中行数据,表也有主键。
排查参数设置,发现datapump进程parameter参数中对报错表有两行。
3.复现
3.1 搭建参数相同测试环境,对测试表建里主键
CREATE TABLE TEST(ID NUMBER PRIMARY KEY,NAME VARCHAR2(20));
3.2 datapump参数文件中写
GGSCI (single) 21> view param dp_tar extract dp_tar setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") CACHEMGR CACHESIZE 100MB passthru DYNAMICRESOLUTION discardfile ./dirrpt/dp_tar.dsc,append, megabytes 100 rmthost db-oracle-node1, mgrport 7809, compress rmttrail ./dirdat/rt table hr.test; table hr.test;
3.3 源端测试DML
HR@messay > insert into test values(1