般情況下要打軟體補丁.
特定SQL、PL/SQL引起的錯誤
嘗試把SQL進行分開執行,也可以用SQL_TRACE來進行跟蹤,找到導致問題的SQL語句:
在SQLPlus下:
ALTER SESSION SET SQL_TRACE TRUE;
SQL語句中的非法字元和不合理的處理結果偶爾會帶來問題.
系統空間不夠
任何時侯都要確保資料庫系統有足夠的空間.如果 USER_DUMP_DEST
和BACKGROUND_DUMP_DEST沒有剩餘空間的話,會導致此問題.此外,如果打開了審計,AUDIT目錄要由足夠的空間.如果啟動了Trace的話,Trace目錄要由足夠的空間.
Dave Wotton的文檔表明,在對表進行插入資料的時侯,如果文件超過了2G(而文件系統有2G限制),會導致該問題.
防火牆的問題
如果資料要通過防火牆,請聯繫系統管理員,詢問是否對資料庫資料進行了過濾或者是突然禁
止了通行埠.如本地安裝有個人防火牆,請檢查本地設置.
其他方面說明
導致這個錯誤的原因有很多種,上面列到的只是一些典型情況.經常去一些資料庫技術論壇可
能會有幫助.比如說ITPUB(http://www.itpub.net)、CNOUG(http://www.cnoug.org)等.
參考資訊/更多閱讀
http://Metalink.oracle.com
Oracle的技術支援站點,要有CSI號碼才可以登錄.
參考Note編號:
Note:17613.1
ORA-3113 on Unix - What Information to Collect
NOTE:131207.1
How to Set UNIX Environment Variables
Note:131321.1
How to Relink Oracle Database Software on UNIX
Note:22080.1
http://www.google.com/grphp hl=zh-CN
Google新聞組
http://www.jlcomp.demon.co.uk/faq/ORA-3113.html
技術專家Jonathan Lewis的站點上的一個FAQ
http://home.clara.net/dwotton/dba/ora3113.htm
Dave Wotton總結的一個很經典的文檔.
在ORACLE管理和應用中,難免出現一些問題。通常,ORACLE會顯示錯誤標號和簡短說明,我們可以根據顯示的資訊去處理問題。但有時顯示的資訊很少,處理起來有些麻煩。本文討論了這樣幾個問題,根據一些資料和經驗,提出了解決方法。
一、 ORA-00604 error occurred at recursive SQL level
這個資訊表明,在資料庫執行內部SQL語句時,發生了錯誤。比如,要往表中插入一行資料,但沒有可擴展的空間。ORACLE於是去查尋,哪兒可以建立下一個擴展空間,它有多大小,但沒有成功。一般在發生ORA-00604錯誤時,還伴隨著其他的錯誤,例如:ORA-1547等。
首先,應當檢查警告文件alertSID.log,查找有關ORA-600類的資訊。
該錯誤最常見的原因是資料庫文件initSID.ora中的參數OPEN_CURSORS值太小。可以修改initSID.ora文件,OPEN_CURSORS的值一般爲255。修改完後,宕下ORACLE,再重新啓動。
還可以設置並啓動資料庫的事件跟蹤功能。在initSID.ora中加上一行:
event = "00604 trace name errorstack"
宕下並重新啓動ORACLE,使這個事件跟蹤參數起作用。這樣,當再發生ORA-604錯誤時,有關資訊就保存在TRACE文件中。
造成ORA-604錯誤的其他原因可能有:
-
initSID.ora中,參數DC_FREE_EXTENTS或ROW_CACHE_ENQUEUES太低。可以根據作業系統和資料庫的情況,適當增加這兩個參數的值,宕下並重新啓動ORACLE。
- 運行超出空間(伴隨ORA-1547錯誤)。這時,要對表空間添加新文件,即增加表空間的大小。
-
達到了MAX_EXTENTS(伴隨ORA-1556 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> 没有相关教程
|