2015-10-14 60 views
0
  1. 你好ExPert我的oracle數據庫版本是11g R2。當我通過使用並行提示將一個 主表插入歸檔表時,我得到了一個錯誤 ORA-01555(快照太舊錯誤)。ORA-01555插入表時出錯

    我也嘗試過使用所有批量收集概念,但仍然相同 錯誤。

    然後我檢查數據庫端並將undo_retention參數更新爲 1800,這對我們的應用程序是明智的,但仍存在相同問題 。任何幫助真的很感激? 配置回退段區域以避免此錯誤的最佳方法是什麼?請注意0​​主表有一些LOB字段。桑託什問道。

+0

這似乎與您昨天問的問題相同http://stackoverflow.com/questions/33108926/insertion-of-table-cause-ora -01555-error-in-oracle-db-version-is-11g-r2我們仍然需要更多信息。你是在單個事務中寫數據還是在循環中進行?交易需要多長時間?你如何確定1800是'undo_retention'的適當設置?流程運行時您產生多少UNDO?你的UNDO表空間有多大?它是否設置爲自動延伸? –

回答

0

可能有各種不平凡的原因。在插入的情況下,對ORA-01555的常見解釋可能不適用。

可能的解釋可以是:

  • 您使用基於字典的表空間和錯誤是由遞歸SQL觸發。 (但可能這不是根本情況,基於字典的表空間不再使用)
  • 完整性約束。某些其他進程修改的父表(以及它的索引)和您的插入未能驗證
  • LOB索引損壞或其他與lobs有關的問題。你在使用11g的地方有幾個問題。除通常的UNDO外,還有在LOB段內創建的回滾段。檢查數據庫警報日誌,應該有ORA-1555,如果你發現duration=0。對於ORA-1555來說,這是非常不尋常的值,你在lob撤銷空間時遇到了問題 - 這與UNDO表空間不同。您必須調整LOB存儲參數。

PS:當UNDO數據文件不可自動擴展時,undo_retention參數被數據庫忽略。 PS1:這個問題應該移到dba.stackexchange.com