GoldenGate 復制進程報錯"OGG-01296 Error mapping",丟棄文件報錯“Mapping problem with delete record (target format)”,且實際條目存在


故障描述:

(1).復制進程 Abended,通過 view report語句查看可發現類似如下的報錯:
2017-10-23 15:01:43 ERROR OGG-01296 Error mapping from CMS_ADM.T3010 to CMS_ADM.T3010.
(2).查看丟棄文件(Discard File)的內容類似如下:
Oracle GoldenGate Delivery for Oracle process started, group RAOC discard file opened: 2017-10-23 15:28:08.467831
Key column PK_ID (0) is missing from delete on table CMS_ADM.T3010
Missing 1 key columns in delete for table CMS_ADM.T3010.
Current time: 2017-10-23 15:28:18
Discarded record from action ABEND on error 0
Aborting transaction on ./dirdat/ao beginning at seqno 17674 rba 29602113
error at seqno 17674 rba 29602113
Problem replicating CMS_ADM.T3010 to CMS_ADM.T3010
Mapping problem with delete record (target format)...
*
P_CODE = 01206135
000000: 30 31 32 30 36 31 33 35 01206135
 
AIRCRAFT_TYPE = 737GY
000000: 37 33 37 47 59 737GY
 
TECH_NO = Z030
000000: 5a 30 33 30 Z030
 
START_DATE = 2017-10-19 00:00:00
000000: 32 30 31 37 2d 31 30 2d 31 39 20 30 30 3a 30 30 2017-10-19 00:00
000010: 3a 30 30 :00
(3).源端查看同步表的 TRANDATA, 發現記錄字段 為 P_CODE、AIRCRAFT_TYPE、TECH_NO、START_DATE。同時,表不久前更換主鍵為 PK_ID。
 
故障原因:
同步表更換主鍵列后,復制進程采用新主鍵(PK_ID)作為唯一標示,而源端投遞過來的 trail 文件仍使用原來的主鍵(P_CODE、AIRCRAFT_TYPE、TECH_NO、START_DATE)作為唯一標示。因此當執行刪除語句時,由於需要 靠唯一標示定位數據,因此復制進程報錯。
 
故障處理方式:
1.重新同步
注意:此方式 整改徹底,可以 避免原主鍵有朝一日 失去唯一性的情況方式。
(1).暫停抽取進程。
(2).對更換主鍵的表重新添加 TRANDATA(DELETE TRANDATA 隨后 ADD TRANDATA),確保作為唯一標示的記錄字段為更新后的主鍵。
(2).重啟抽取進程。
2.臨時處理
(1).修改目標端復制進程參數,使原有同步參數變為如下。
MAP CMS_ADM.T3010, TARGET CMS_ADM.T3010, KEYCOLS(P_CODE, AIRCRAFT_TYPE, TECH_NO, START_DATE);
(2).重啟復制進程。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM