ORA 39083,ORA 02298錯誤一則

2021-08-27 07:38:17 字數 1107 閱讀 1402

問題:

在使用impdp工具導從生產環境匯入到測試環境資料時,匯入過程最後出現下面的錯誤:

impdpsystem/********directory=dir_1network_link=link_5237schemas=nticketlogfile=imp237_120703.log

ora-39083:物件型別ref_constraint建立失敗,出現錯誤:

ora-02298:無法驗證(nticket.tk_itinerary_prn_fk2)-未找到父項關鍵字

失敗的sql為:

altertable"nticket"."tk_itinerary_prn_dt"addconstraint"tk_itinerary_prn_fk2"foreignkey("tkt_id")references"nticket"."tk_order_ticket_dt"("id")enable

分析原因:

從錯誤資訊看是因為違反了外來鍵約束所至,但為什麼出現這種情況呢?

--檢查資料

sql>selecttkt_idfromnticket.tk_itinerary_prn_dt

2minus

3selectidfromnticket.tk_order_ticket_dt;

tkt_id

----------------------------------------

8a81858c384b801701384d3b4af90a3b

8a81858c384b801701384d3b4afb0a3d

8a81858c384b801701384d3bf1550a46

發現主表中有外來鍵表中不存在的外鍵值。

因為資料從生產環境導過來的,匯入時間用了近1小時,而資料表的匯入順序是按表的由大到小匯入的。在這過程中如果先導入外來鍵表資料,再經過一段時間後,再匯入主表資料。如果這段時間經過的時間比較長,就會有可能出現主表和外來鍵表資料不一致的情況。就像前面所說的主表中有外來鍵表中不存在的外鍵值。

解決辦法:

1.如果允許,在匯入前先把生產環境使用者進行鎖定。

alterusernticketaccountlock;

2.或是在匯入時加上flashback_scn引數,保證資料匯入的一致性。

Oracle資料庫匯入報ORA 39083處理

故障描述 報錯資訊 ora 39083 物件型別 default role 建立失敗,出現錯誤 ora 01919 角色 role emsp 不存在 失敗的 sql 為 alter user bfpub mall default role connect role emsp 解決方案 既然匯入的時候...

ORA 09817,ORA 01075報錯解決方法

sql conn as sysdba error ora 09817 write to audit file failed.svr4 error 28 no space left on device ora 01075 you are currently logged on sql 檢視硬碟空間發現...

ORA 00354 ORA 00353問題處理

同事電腦上的測試庫,很久沒用,今天啟動的時候沒啟動起來,報錯如下 資料庫版本11.2.0.4,沒開啟歸檔 看到報錯的第一反應就是 open resetlogs。然後去網上搜了一下,大家的思路基本都是一致的。從報錯資訊可以看出是redo的檔案頭有壞塊。因為是測試庫,redo裡的資訊丟了也無所謂 即使是...