ORA-04031 的原因分析解決方法
ORA-04031: unable to allocate 4096 bytes of shared memory
下面分析了幾個可能及解決方法
基本上,ORA-04031出現的問題有幾個可能性
A. 沒有繫結編量造成shared_pool碎片過多,同時shared_pool_size太小.
--這個應該是比較常見的,也是Oracle提的最多的。
--這個通常會建議使用繫結變數,或者簡單的加大shared_pool.或者臨時解決方法就是alter system flush shared_pool.
B. Large_pool,Java_pool太小造成的
--這個透過錯誤資訊的提示很容易判斷(Ora-04031 cannot allocate .. memeory in [large_pool])
--解決方法就是簡單的加大 Large_pool or Java_pool
C. 過度的開CURSOR而不關閉。
--這個問題發生的越來越多,特別是在JAVA執行環境中,頻頻出現。加大Shared_pool或者flush shared_pool往往只能延遲問題出現的時間,而沒法避免。
--判斷方法:
select count(*) from v$open_cursor ;
select * from v$sysstat
where name = 'opened cursors current';
如果出來的值特大(以萬為單位)時,基本就可以確定是這個原因了
--解決這個問題的方法就是檢查程式,看是否沒有正常的關閉cursor(對於JAVA來說,就是沒有關閉Statement)。或者select sql_text from v$open_cursor,看看都是哪些cursor沒關閉,再去檢查車程式。
--也有的程式使用了保持一定量的cursor一直open,從而避免cursor過多次的開啟,來提高效能。對於這種情況,則應該選擇適當的shared_pool_size和控制keep_opening的cursor的量。
--也有可能Oracle引數session_cached_cursors太大,解決方法就是把它降低到適當的值
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-753916/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入探討ORA-04031的產生原因及解決方法
- Windows變慢原因分析及解決方法(轉)Windows
- ANR原因及解決方法
- 筆記本螢幕變暗的原因分析以及解決方法筆記
- ORA-04031 故障解決案例詳細分析一則
- ORA-04031錯誤分析和解決
- ORA-04031的傻瓜解決辦法
- rman連線輔助資料庫ORA-04031的解決方法資料庫
- 案例分析:ora-04031與ora-04030錯誤分析與解決
- 查詢分析器不能單步除錯的的原因及解決方法除錯
- mysqldump意外終止的原因以及解決方法MySql
- 恆訊科技分析:遊戲伺服器未響應的原因以及解決方法遊戲伺服器
- ORA-04031的傻瓜解決辦法(轉)
- mysql伺服器查詢慢原因分析與解決方法小結MySql伺服器
- No input file specified 出現的原因及解決方法
- Oracle imp/impdp報ORA-04031:streams pool,..fixed allocation callback解決/分析Oracle
- computer browser關閉原因解決方法
- DVR常見故障原因及解決方法VR
- windows7系統玩遊戲閃屏抖屏的原因分析及解決方法Windows遊戲
- Ajax跨越問題原因分析與解決思路
- Linux中產生zombie的原因詳解及解決方法!Linux
- MSSQL資料庫超時的原因與解決方法SQL資料庫
- 網站內頁不收錄的原因及解決方法網站
- 專案成本超支的主要原因以及解決方法
- DNS故障的幾種常見原因及解決方法DNS
- impdp操作產生大量UNDO的原因及解決方法
- 診斷並解決ORA-04031 錯誤
- 家庭電氣火災原因分析及解決方案
- 調節閥振動原因分析及解決方案
- 百度快照被劫持的原因及解決方法、百度快照劫持的解決方法全
- 撥號VPS中691的可能原因及解決方法?
- 技術分享 | DNS解析不生效的原因及解決方法DNS
- u盤複製速度慢的原因及解決方法
- ORA-01208 的原因與解決方法
- 資料庫連線失敗的原因及解決方法資料庫
- 資料庫連線錯誤的原因及解決方法資料庫
- 【MySQL】常見slave 延遲原因以及解決方法MySql
- 常見等待事件的分析解決方法事件