ORA-04031錯誤的處理
4031我兩年遇到了不下5次,現在總結下下
4031錯誤是SHARED_POOL很容易產生的錯誤,對於SHARED_POOL的原因一般有3類:
BUG
SHARED_POOL太小
SHARED_POOL有太多的碎片
對於LARGE POOL,JAVA POOL,一般是由於設定的太小導致到
BUG可以從Doc ID: 396940.1 中查詢
SHARED_POOL太小,可以通過監控v$sgastat檢視free memory是否過少,或者在04031發生後生成的DUMP中也可以檢視到
SHARED_POOL有太多的碎片,這個可以通過x$ksmsp來分析,或者是04031發生後的DUMP
如何來減少04031錯誤了
1.10G的SGA自動管理
2.定期flush SHARED_POOL
3.不要設定過高的session_cache_cursor
4.使用繫結變數
5.當沒有使用繫結變數而且cursor_sharing=similar時,一定不要收集直方圖
6.加大SHARED_POOL_RESERVED_MIN_ALLOC的空間,保留空間也可能發生04031,具體診斷是監控v$shared_pool_reserved
7.把一些大的物件PIN到SHARED_POOL中
對於碎片造成的04031,一般的原因是沒有使用繫結變數的SQL和大量的硬解析
查詢的方法一般有
v$sqlarea中基本相同的SQL
v$sqlarea中version_count異常高的SQL
通過v$open_cursor和v$sqlarea查詢當前佔用記憶體高的SESSION,在獲得該SESSION的SQL分析(還方法不適合於存在version_count異常高的情況)
DUMP library_cache 來分析SQL硬解析的SQL
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-586914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【問題處理】dbca建庫過程中報 ORA-04031錯誤的排查
- 錯誤處理
- go的錯誤處理Go
- ORA-04031錯誤分析
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- axios 的錯誤處理iOS
- COM的錯誤處理 (轉)
- ORA-04031錯誤詳解
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- PHP錯誤處理和異常處理PHP
- Python錯誤處理Python
- 請教 Element 的錯誤處理
- Restful API 中的錯誤處理RESTAPI
- 【譯】RxJava 中的錯誤處理RxJava
- grpc中的錯誤處理RPC
- JavaScript的錯誤簡易處理JavaScript
- ora-04031處理過程
- ORA-04031錯誤分析和解決
- 【故障處理】ORA-12162 錯誤的處理
- 前端的水平線,錯誤處理和除錯前端除錯
- 異常錯誤資訊處理
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- laravel9 錯誤處理Laravel
- 淺談前端錯誤處理前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 15-錯誤處理(Error)Error
- 學習Rust 錯誤處理Rust
- Go語言之錯誤處理Go
- GOLANG錯誤處理最佳方案Golang
- Objective-C:錯誤處理Object
- javascript之處理Ajax錯誤JavaScript