Oracle

轉儲文件導入後序列號顯示較低的值

  • January 21, 2017

我正在使用 Oracle 11g 數據庫,其中有超過 12 個由許多表組成的模式。我已經為這些表的主鍵創建了序列。我還創建了同義詞來從主模式中引用我的應用程序。

我的問題是,當我嘗試從 1 台伺服器中的 DB 導出(使用 expdp)模式並將轉儲文件導入(impdp)到安裝在另一台伺服器中的 db 時,僅某些表的序列值正在更改。即使我嘗試重新映射表空間或模式,序列的值顯示的值也比它們各自表中的行要小。因此,當我訪問應用程序時,它會在保存數據時引發錯誤。

我很困惑,沒有想法解決這個問題。請指教。他們有什麼方法可以解決這個問題嗎?

提前致謝。

如果您在沒有參數的情況下對實時數據庫執行導出命令flashback_scnflashback_time確保導出期間的一致性,那麼這可能是一種預期的行為,因為這些對像是在不同的時間導出的,並且其中一個可能與另一個不一致。

例如,如果序列對像在表之前導出,並且應用程序已使用該序列插入新記錄並稍後導出,則表和序列可能不同步。

在開始導出過程之前停止應用程序或使用expdp類似的參數flashback_time(這可能不會導出在此參數指定的時間之後進行的所有事務,除非您停止應用程序)可以防止這種情況。或者您可以在導入後通過重新創建來調整序列值。

引用自:https://dba.stackexchange.com/questions/161836