2012-08-15 89 views
1

我在運行我的工作流程時頻繁出現'快照太老的錯誤',運行時間超過5小時。我的源是oracle,目標是Teradata。請幫助解決此問題。預先感謝快照太舊錯誤

+0

http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm – Randy 2012-08-15 16:15:55

回答

2

的ORA-01555快照太舊的錯誤,我讀過的最好的解釋,this AskTom thread

問候發現。

2

快照太舊錯誤與您的查詢(通常是FOR循環的遊標)的運行時間或多或少有直接關係。所以最好的解決方案是優化你的查詢,讓它們運行得更快。

作爲短期解決方案,您可以嘗試增加UNDO日誌的大小。

更新:

撤銷日誌存儲記錄的以前版本的它的更新之前。它用於回滾事務並檢索較早版本的記錄以獲得長時間運行的查詢的一致性數據快照。

如果要通過增加UNDO日誌來解決問題,您可能需要深入Oracle數據庫管理。基本上你可以(如SYSDBA):

ALTER SYSTEM SET UNDO_RETENTION = 21600; 

21600是6秒鐘。

但是,如果UNDO日誌文件足夠大,Oracle將只保留6小時的舊數據,這取決於回滾段的大小以及數據庫上執行的更新量。

因此,除了更改撤消保留時間外,還應確保在作業運行時執行少量併發更新。尤其是,你的工作正在閱讀的數據更新應該儘量減少。

如果一切都失敗,請增加UNDO日誌。

+0

Thanks.The查詢非常簡單,但它獲取更多的記錄,達到它需要更長的時間。我正在使用Tpump加載到Target (非交錯模式)。 wat是UNDO日誌?你能說清楚嗎?並告訴我其他可能的方法來克服這個錯誤.. – user1601052 2012-08-16 14:34:59

+0

請參閱我的更新以獲取更多信息。 – Codo 2012-08-16 15:18:16

+0

快照太舊意味着撤消保留時間太短,所以跟codo告訴你一樣,你需要修改它。然後到達快照太小;這個時間與撤銷表空間的大小相關聯,該表空間存儲了一旦滿足撤銷保留時必須完成的回滾。第一個影響往往是第二個影響。希望這可以澄清。問候。 – 2012-08-17 20:25:45

相關問題