ORA-04031:無法分配 32 位元組的共享記憶體
案例 ORA-04031:無法分配 32 位元組的共享記憶體
今天發現資料庫異常當機情況
出現錯誤ORA-04031: 無法分配 ORA-04031: 無法分配 32 位元組的共享記憶體
資料庫版本 目前版本10.2.0.4 但是compatible還是10.2.0.3.0
按道理講此bug,在10.2.0.4已解決
參考文章
http://blog.csdn.net/perddy/article/details/4430823
select * from (select name
,value
,decode(isdefault, 'TRUE','Y','N') as "Default"
,decode(ISEM,'TRUE','Y','N') as SesMod
,decode(ISYM,'IMMEDIATE', 'I',
'DEFERRED', 'D',
'FALSE', 'N') as SysMod
,decode(IMOD,'MODIFIED','U',
'SYS_MODIFIED','S','N') as Modified
,decode(IADJ,'TRUE','Y','N') as Adjusted
,description
from ( --GV$SYSTEM_PARAMETER
select x.inst_id as instance
,x.indx+1
,ksppinm as name
,ksppity
,ksppstvl as value
,ksppstdf as isdefault
,decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE') as ISEM
,decode(bitand(ksppiflg/65536,3),
1,'IMMEDIATE',2,'DEFERRED','FALSE') as ISYM
,decode(bitand(ksppstvf,7),1,'MODIFIED','FALSE') as IMOD
,decode(bitand(ksppstvf,2),2,'TRUE','FALSE') as IADJ
,ksppdesc as description
from x$ksppi x
,x$ksppsv y
where x.indx = y.indx
and substr(ksppinm,1,1) = '_'
and x.inst_id = USERENV('Instance')
)
order by name
)
以上sql,能解釋隱含引數
分析 1.可能sharepool 真的不夠
先查詢下pool
select pool,sum(bytes/1024/1204),sum(bytes)/(select sum(bytes) from v$sgastat)*100 as "Percent"
from v$sgastat where pool is not null group by pool;
查詢buffer大小
select name,sum(bytes/1024/1204),sum(bytes)/(select sum(bytes) from v$sgastat)*100 as "Percent"
from v$sgastat where pool is null group by name;
10G SGA自動管理資訊
select component,CURRENT_SIZE/1024/1204,user_specified_size,granule_size from v$sga_dynamic_components;
11G MEMORY自動管理資訊
SELECT * FROM V$MEMORY_DYNAMIC_COMPONENTS
SELECT * FROM V$MEMORY_RESIZE_OPS
SELECT * FROM V$MEMORY_TARGET_ADVICE
結論:sharepool沒有不夠的問題!
分析 2.compatible引數還是10.2.0.3.0,導致BUG
解決辦法
2.1 create pfile='/u01/pfile.ora' from spfile;
並將compatible 修改為‘10.2.0.4.0’
2.2 shutdown 資料庫
2.3 startup nomount pfile='/u01/pfile.ora'
2.4 create spfile from pfile='/u01/pfile.ora'
2.5 shutdown immediate;
2.6 startup;
修改完成,待觀察。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25850100/viewspace-714825/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-04031: 無法分配 7411440 位元組的共享記憶體 ("shared pool","TransportHandlingUnitTy6750_T","type object de","KOK記憶體Object
- Oracle記憶體分配中的子池(Subpool)--ORA-04031Oracle記憶體
- 記憶體位元組對齊記憶體
- 當linux報 “-bash: fork: 無法分配記憶體”Linux記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- iOS 記憶體位元組對齊iOS記憶體
- Oracle記憶體分配經驗法則Oracle記憶體
- ORA-27102 IPCRM無法清除共享記憶體記憶體
- STM32記憶體結構介紹和FreeRTOS記憶體分配技巧記憶體
- JVM基礎:JVM記憶體組成及分配JVM記憶體
- 雲伺服器IIS無法獲取 W3WP 程式的專用位元組記憶體限制伺服器記憶體
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- STM32 記憶體分配解析及變數的儲存位置記憶體變數
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- 記憶體分配的確定記憶體
- weblogic的記憶體分配Web記憶體
- 共享記憶體記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- JVM 記憶體模型 記憶體分配,JVM鎖JVM記憶體模型
- 共享池記憶體分配和錯誤ORA-00371記憶體
- 探索iOS記憶體分配iOS記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- [C++]記憶體分配C++記憶體
- 動態記憶體分配記憶體
- C語言:記憶體位元組對齊詳解C語言記憶體
- C/C++—— 記憶體位元組對齊規則C++記憶體
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- ORA-04030: 在嘗試分配...位元組 (hash-join subh,kllcqas:kllsltba) 時程式記憶體不足。記憶體
- C語言的記憶體分配C語言記憶體
- 物件的建立與記憶體分配物件記憶體
- go是如何分配記憶體的?Go記憶體
- 控制C++的記憶體分配C++記憶體
- 記憶體分配的隱藏成本記憶體
- Oracle的記憶體分配和使用Oracle記憶體
- C中的記憶體分配模型記憶體模型