MemoryORA-4031错误概要
Posted SQLplusDB
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MemoryORA-4031错误概要相关的知识,希望对你有一定的参考价值。
Keyword:
Memory
ora-4031
Heap dump
版权声明:本文为博主原创文章,转载请注明出处,谢谢。http://blog.csdn.net/lukeunique
概述
本文将概括地介绍内存不足引起的ORA-4031错误。
关于ORA-4031错误
ORA-4031错误对于一些有一定Oracle数据库经验的人来说不陌生。
即:当进程从共享内存中分配内存时,由于没有足够大的连续空闲空间(内存块)而导致的错误。
错误报警的例子:
ORA-04031: unable to allocate 1072 bytes of shared memory ("shared pool","SELECT OBJECT_TYPE ...","KGLH0^46e70486","kkocs.c.kgght")
关于上面的错误内容各项目的含义,简单介绍如下:
1072 bytes :请求分配的内存大小
"shared pool" :要求内存的内存池(即发生错误的内存池)
(通常为shared pool或large pool,有时也可能是Java pool 或 Streams pool)
"SELECT OBJECT_TYPE ...":要求内存的对象内容,不明时出力为"unknown object"
"KGLH0^46e70486" :要求内存的大体类型和位置
"kkocs.c.kgght" :要求内存的类型
下面是ORA-4031的简单描述和帮助:
$ oerr ora 4031
04031, 00000, "unable to allocate %s bytes of shared memory (\\"%s\\",\\"%s\\",\\"%s\\",\\"%s\\")"
// *Cause: More shared memory is needed than was allocated in the shared
// pool or Streams pool.
// *Action: If the shared pool is out of memory, either use the
// DBMS_SHARED_POOL package to pin large packages,
// reduce your use of shared memory, or increase the amount of
// available shared memory by increasing the value of the
// initialization parameters SHARED_POOL_RESERVED_SIZE and
// SHARED_POOL_SIZE.
// If the large pool is out of memory, increase the initialization
// parameter LARGE_POOL_SIZE.
// If the error is issued from an Oracle Streams or XStream process,
// increase the initialization parameter STREAMS_POOL_SIZE or increase
// the capture or apply parameter MAX_SGA_SIZE.
ORA-4031的主要原因和解决方法
发生ORA-4031错误的处理通常为”压垮骆驼背的最后一根稻草”,即很有可能是内存不足的受害者,而不是罪魁祸首。因此,在调查ORA-4031问题时,要关注总体的内存使用情况而不是发生问题的处理或对象。
一般ORA-4031错误主要有以下几种原因引起:
1.内存不足,内存池的过小。
2.内存池的碎片化。虽然总体空闲空间还是很大,但是由于碎片化没有足够大的连续空间。
3.应用的问题浪费过多的内存。如:游标没有共享产生过多的子游标,PL/SQL对象定义太大等。
4.由于Oracle的Bug影响。如不能正常释放内存而导致浪费大量内存。
相应地,ORA-4031错误解决办法需要根据发生原因来决定:
1.加大内存池的大小,解决内存池的过小的问题。
2.通过数据库重启或者 Flush内存池,解决内存池的碎片化。
3.修改应用程序或设计,解决应用的问题。
4.修改相应的Bug。
理论上讲,只要内存池足够大就不会发生ORA-4031错误。因此,无论何种原因引起的ORA-4031,只要系统允许,不断地加大内存池的大小都能暂时地改善ORA-4031的发生。
※对于ORA-4031错误详细解析以及相关内部原理等内容将在后续的文章中进行介绍。
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于MemoryORA-4031错误概要的主要内容,如果未能解决你的问题,请参考以下文章
websphere 概要文件创建已完成但有错误,原概要AppServer01下全部删除,但是不成功,可能原来没删除干净