如何使用 Oracle Data Pump 獲得一致的匯出?

如何使用 Oracle Data Pump 獲得一致的匯出?

我正在嘗試從模擬CONSISTENT=Y.目前我正在以這種方式執行資料泵:

'/ AS SYSDBA' schemas=arrels dumpfile=arrels.dmp nologfile=y flashback_time='2009-06-03 12:00:02' 

但是導入時顯示不一致的錯誤:

ORA-02298: cannot enable name - parent keys not found

如果資料泵匯出正在使用flashback_time,當然,約束在匯出時間上進行驗證:

  • 為什麼會發生這種情況?
  • 有什麼建議可以解決嗎?

答案1

我找到了問題的答案。我準確地輸入了當前時間戳:

flashback_time='2009-06-03 12:05:02'

如果我設定更早的時間戳記(例如 5 分鐘前),它就可以正常工作...

答案2

您確定要匯出的模式(“arrels”)沒有引用其他模式中的物件的引用約束嗎?如果 arrels 模式中的一個或多個外鍵引用引用其他模式中的表,那麼您也必須匯出/匯入它們。

編輯:文件似乎表明您需要在雙引號中指定閃回時間,例如:

'... flashback_time='"2009-06-03 12:00:02"'

我遇到的另一個例子是使用 TO_TIMESTAMP 函數:

exp 系統/管理器檔案=exp.dmp flashback_time=\"TO_TIMESTAMP('19-06-2004 13:24:26', 'DD-MM-YYYY HH24:MI:SS')\"

此外,您必須啟用自動撤銷管理才能使用此功能。

相關內容