1. 程式人生 > >oracle IMP導入錯誤 IMP-00003: ORACLE error 2298

oracle IMP導入錯誤 IMP-00003: ORACLE error 2298

IMP-00003 ORA-02298 IMP-00017 imp導入錯誤

一個項目:需要將數據庫從老服務器遷移到新服務器,用exp導出的數據

imp導入exp導出備份時遇到下面錯誤提示:

IMP-00017: following statement failed with ORACLE error 2298:
 "ALTER TABLE "RESERVATION" ENABLE CONSTRAINT "RESERVATION_FK31252591893468""

IMP-00003: ORACLE error 2298 encountered

ORA-02298: cannot validate (RESERVATION.RESERVATION_FK31252591893468) - parent keys not found
Import terminated successfully with warnings.

產生錯誤原因以及解決辦法:
出現上面的原因有可能是在導出的時間某個表已經被導出了,可是他外鍵關聯系有數據變化了,導致不一致,所以報錯。exp不能保證事務的完整性。如果你導出主表。隨後有人在主表增加記錄,然後在子表增加記錄,提交。

不能鑒定上面說的是否正確,應該也會發生,不過查了很多資料後又發現,應該是exp導出時少了一個參數。所以解決辦法是在導出備份的腳本中加入這個參數consistent=y 默認為no .為的是保持一致的作用。
$ exp rh/124 file=/home/oracle/rh201804260920.dmp owner=rh grants=no consistent=y
GRANTS參數表示導出時否要導出數據庫對象上的授權(no不導出)

在導入就不會有報錯了:
$ imp rh/jkj file=/home/oracle/rh201804260920.dmp ignore=y full=y

oracle IMP導入錯誤 IMP-00003: ORACLE error 2298