ORA-04031: Unable To Allocate 32 Bytes Of Shared Memory
记录一次生产库遇到的4031错误,后来通过调整sga大小将问题解决了
报错信息:
ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","select user#,password,datats...","SQLA","tmp")
Incident details in: /u01/app/oracle/diag/rdbms/twprod/xxxxx/incident/incdir_237848/xxxxx_ora_36005_i237848.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Tue Jun 06 19:57:24 2017
Errors in file /u01/app/oracle/diag/rdbms/xxxx/xxxx/trace/xxxx_e004_106234.trc (incident=238416):
ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select /*+ INDEX(TAB AQ$_AQ...","SQLA","tmp")
Incident details in: /u01/app/oracle/diag/rdbms/xxxx/xxxx1/incident/incdir_238416/xxxx1_e004_106234_i238416.trc
查看当前sga设置:
SYS@ xxxx1> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 20G
sga_target big integer 20G
调整sga为30g并重启数据库使参数生效:
SYS@ xxxx1> alter system set sga_max_size=30G scope=spfile;
SYS@ xxxx1> alter system set sga_target=30G scop=spfile;
SYS@ xxxx1> shutdown immediate
SYS@ xxxx1> startup
以下是Mos的解决方法,以供参考:
ORA-04031: Unable To Allocate 32 Bytes Of Shared Memory ("shared pool","select tablespace_id, rfno, ...","SQLA","tmp")" (文档 ID 1986741.1)
In this Document
APPLIES TO:
Oracle Database - Enterprise Edition - Version 11.2.0.2 and later
Information in this document applies to any platform.
SYMPTOMS
Alert log reports errors like below in almost all the instances:
ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select tablespace_id, rfno, ...","SQLA","tmp")"
CAUSE
The trace file shows there are 6 sga subpools allocated.
...
****************** End of process map dump ************
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 1
----------------------------------------------
"KGH: NO ACCESS " 4056 MB 61%
"gcs dynamic s " 713 MB 11%
"free memory " 625 MB 9%
"gcs dynamic r " 501 MB 8%
"init_heap_kfsg " 195 MB 3%
"FileOpenBlock " 122 MB 2%
"gcs resources " 64 MB 1%
"ges enqueues " 62 MB 1%
"gcs shadows " 45 MB 1%
"PRTMV " 40 MB 1%
-----------------------------------------
free memory 625 MB
memory alloc. 6031 MB
Sub total 6656 MB
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 2
----------------------------------------------
"KGH: NO ACCESS " 3822 MB 71%
"free memory " 343 MB 6%
"SQLA " 223 MB 4%
"gcs dynamic r " 146 MB 3%
"KGLH0 " 126 MB 2%
"gcs dynamic s " 98 MB 2%
"gc name table " 96 MB 2%
"ges resource " 78 MB 1%
"PRTMV " 68 MB 1%
"gcs resources " 65 MB 1%
-----------------------------------------
free memory 343 MB
memory alloc. 5033 MB
Sub total 5376 MB
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 3
----------------------------------------------
"KGH: NO ACCESS " 3812 MB 80%
"free memory " 215 MB 5%
"SQLA " 112 MB 2%
"KGLH0 " 97 MB 2%
"ges resource " 80 MB 2%
"gcs resources " 66 MB 1%
"gcs shadows " 46 MB 1%
"PRTMV " 45 MB 1%
"KQR X PO " 44 MB 1%
"ges enqueues " 22 MB 0%
-----------------------------------------
free memory 215 MB
memory alloc. 4521 MB
Sub total 4736 MB
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 4
----------------------------------------------
"KGH: NO ACCESS " 3557 MB 79%
"free memory " 367 MB 8%
"KQR L PO " 79 MB 2%
"KGLH0 " 76 MB 2%
"gcs resources " 66 MB 1%
"SQLA " 61 MB 1%
"gcs shadows " 45 MB 1%
"PRTMV " 39 MB 1%
"ges enqueues " 16 MB 0%
"KGLHD " 12 MB 0%
-----------------------------------------
free memory 367 MB
memory alloc. 4113 MB
Sub total 4480 MB
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 5
----------------------------------------------
"KGH: NO ACCESS " 3689 MB 85%
"free memory " 215 MB 5%
"KGLH0 " 74 MB 2%
"gcs resources " 65 MB 2%
"gcs shadows " 44 MB 1%
"PRTMV " 40 MB 1%
"SQLA " 32 MB 1%
"ges enqueues " 24 MB 1%
"db_block_hash_buckets " 21 MB 0%
"KGLHD " 12 MB 0%
-----------------------------------------
free memory 215 MB
memory alloc. 4137 MB
Sub total 4352 MB
==============================================
TOP 10 MEMORY USES FOR SGA HEAP SUB POOL 6
----------------------------------------------
"KGH: NO ACCESS " 3685 MB 76%
"free memory " 240 MB 5%
"gcs dynamic s " 138 MB 3%
"flashback generation buff " 122 MB 2%
"SQLA " 116 MB 2%
"gcs dynamic r " 106 MB 2%
"KGLH0 " 91 MB 2%
"gcs resources " 64 MB 1%
"gcs shadows " 44 MB 1%
"PRTMV " 41 MB 1%
-----------------------------------------
free memory 240 MB
memory alloc. 4624 MB
Sub total 4864 MB
TOTALS ---------------------------------------
Total free memory 2005 MB
Total memory alloc. 28 GB
Grand total 30 GB
==============================================
There are 6 subpools created in the SGA and a high amount of memory is allocated to "KGH: NO ACCESS "
There are multiple bugs open on the same but on 11gR2 there is no actual fix.
SOLUTION
As a solution for the issue you can disable the use of durations.
The shared pool can have subpools with 4 durations. These durations are "instance", "session", "cursor", and "execution". By default these durations are separate from each other.
The disable durations, you have to set the underscore parameter:
"_enable_shared_pool_durations = false"
This is recommended by development for all similar issues.
The main advantage of "_enable_shared_pool_durations = false" is that all the durations are combined into one pool and so a duration will not run out while another duration has free memory.
This issue will be fixed in 12c version due to architectural changes which will allow less need of durations for subpools.
Note:
Please note that unpublished Enhancement Request Bug 8857940 - NEED COMMON DURATIONS FOR UNSHRINKABLE POOLS 8857940, fixed starting with 12.1.0.1, addresses the durations issue as well. With the fix for Bug 8857940 in place, Oracle permits to group the shared pool durations in 2 groups to allow better shareability of the memory and avoid the ORA-4031 errors.
Another possible solution is to apply Patch 8857940 if it is available for your platform and version.
REFERENCES
BUG:19236833 - EXADATA: ORA-04031: UNABLE TO ALLOCATE 32 BYTES OF SHARED MEMORY "SQLA" "TMP"
NOTE:411.1 - ADR Different Methods to Create IPS Package
BUG:17789414 - SUPERCLUSTER: ORA-4031 ERRORS OCCURING WEEKLY CAUSING INSTANCE CRASHES
BUG:20447919 - ORA-4031: UNABLE TO ALLOCATE 32 BYTES
ORA-04031: Unable To Allocate 32 Bytes Of Shared Memory的更多相关文章
- [未解决:快速滑动collectionveiw请求数据崩溃]:unable to allocate 6553600 bytes for bitmap data
崩溃:unable to allocate 6553600 bytes for bitmap data
- PHP错误——Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes)
解释是可用内存已耗尽,这关系到PHP的memory_limit的设置问题. 这里有两种方法解决 1.修改php.ini memory_limit = 128 打开终端输入下列bash命令 cd /pr ...
- STM8程序在IAR中报错 unable to allocate space for sections
Error[Lp011]: section placement failed: unable to allocate space for sections/blocks with a total es ...
- Could not allocate 40960 bytes percpu data
2017-10-01 21:40:56[ 176.700091] vif: Could not allocate 40960 bytes percpu data[ 263.762812] perc ...
- linux 下tomcat出现 Native memory allocation (malloc) failed to allocate 1915224064 bytes for committing reserved memory问题
## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocat ...
- Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 64 bytes) in D
Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 64 bytes) in D 从数据库 ...
- PHP运行错最有效解决办法Fatal error: Out of memory (allocated 786432) (tried to allocate 98304 bytes) in H:\freehost\zhengbao2\web\includes\lib_common.php on line 744
原文 PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312) Fatal error: Out of memory (allocated ...
- ms mpi error: unable to allocate launching block
问题描述: 在VS 2015中使用Microsoft MPI(ms mpi)构建控制台应用,使用" mpiexec -n 4 myprog.exe"运行时退出并提示"un ...
- (转载)PHP的内存限制 Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in
(转载)http://blog.csdn.net/beyondlpf/article/details/7794028 Fatal error: Allowed memory size of 13421 ...
随机推荐
- py---------网络编程
一.软件开发架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度.知乎.博客园等使用浏览器访 ...
- git——更新分支、提交代码、切换分支、合并分支
还是直接贴教程吧:https://git-scm.com/book/zh/v2 如何把本地idea上的项目上传到github上:https://www.cnblogs.com/gougouyangzi ...
- strcpy、strncpy、strlen、memcpy、memset、strcat、strncat、strcmp、strncmp,strchr
1.strcpy #include<stdio.h> #include<assert.h> char *mystrcpy(char *dest, const char *src ...
- JavaScript事件模型及事件代理
事件模型 JavaScript事件使得网页具备互动和交互性,我们应该对其深入了解以便开发工作,在各式各样的浏览器中,JavaScript事件模型主要分为3种:原始事件模型.DOM2事件模型.IE事件模 ...
- Linux Shell命令系列(4)
16. cat命令 “cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容. 17. cp 命令 “copy”就是复制.它会从一个地方复制一个文件 ...
- 机器学习框架ML.NET学习笔记【2】入门之二元分类
一.准备样本 接上一篇文章提到的问题:根据一个人的身高.体重来判断一个人的身材是否很好.但我手上没有样本数据,只能伪造一批数据了,伪造的数据比较标准,用来学习还是蛮合适的. 下面是我用来伪造数据的代码 ...
- Java中的Enum(枚举)用法介绍
1. 关于Java Enum:学过C/C++等语言的人,应该都对Enum类型略知一二.Enum一般用来表示一组相同类型的常量.如性别.日期.月份.颜色等.对这些属性用常量的好处是显而易见的,不仅可以保 ...
- 白话SpringCloud | 第二章:服务注册与发现(Eureka)-上
前言 从本章节开始,正式进入SpringCloud的基础教程.从第一章<什么是SpringCloud>中我们可以知道,一个微服务框架覆盖的东西是很多的,而如何去管理这些服务或者说API接口 ...
- Oracle单列函数
--字符函数--1.ASCII 返回与指定的字符对应的十进制数;select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space fr ...
- mysql数据库字段类型的选择原则
原文链接:http://blog.csdn.net/u013412790/article/details/51615407 数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销 ...