ITPub博客

首页 > 数据库 > Oracle > ORA-04030

ORA-04030

原创 Oracle 作者:stockDB 时间:2015-06-15 23:53:23 0 删除 编辑
今天客户打电话说数据库在运行中报两个错,明日去进行处理。
错误一:ORA-04030

metlink上关于ORA-04030的解释可以查看文档 ID 1548826.1
有以下几种原因:
1.操作系统本身内存不足
2.操作系统用户限制使用内存过小
3.PGA_AGGREGATE_TARGET设置过小
4.某个进程进行hash join或者sort

经看metlink初步定为问题是由于Bug:13447197 ,具体查看文档 ID 1471103.1,这篇文章建议修改_pga_max_size参数,这个参数是隐含参数,影响每个进程连接使用的PGA最大内存。
SQL> alter system set "_pga_max_size"=100M;

今天去客户现场收集到了一些信息,首先操作系统是32位的windows,本身具有2G内存限制,所以这个问题很大的归结在内存不足的原因,alertlog报错如下:
Errors in file d:\oracle\product\10.2.0\admin\orcl\bdump\orcl_smon_3936.trc:
ORA-00600: internal error code, arguments: [kksCallPopCallback], [], [], [], [], [], [], []
ORA-04030: out of process memory when trying to allocate 123404 bytes (QERHJ hash-joi,kllcqas:kllsltba)
trace文件忘了收集了,下次去的时候收集一下再来补充,在metlink上查到了一篇文章32-BIT WINDOWS: Getting ORA-4030, ORA-600 [kgassg_2] and ORA-7445 ... [UNABLE_TO_WRITE] errors. (文档 ID 1517166.1)
下面是这篇文章里的信息:

In all cases, the Available VA (Virtual Address space) was 40Mb or less, even though (in one case) there was up to 1.5Gb of Physical memory available.

This appears to be a Virtual Bytes leak for Oracle on the 32-bit Windows platform, and is currently being progressed as:
Bug 14125002 - PERFMON SHOWS ORACLE PROCESS VIRTUAL BYTES LEAK UNTIL ORA-27301/ORA-4030
根据上面的信息表示,这个问题时由于VA剩余小于40Mb导致的。
目前有个bug进行这个问题的修复
BUG:14125002 - PERFMON SHOWS ORACLE PROCESS VIRTUAL BYTES LEAK UNTIL ORA-27301/ORA-4030
When the Available VIRTUAL BYTES for the Oracle process approaches 100M, perform an orderly re-start of the MS-Windows system.  This is because re-starting Oracle does not appear to reset the MS-Windows VIRTUAL BYTES used by the Oracle user.
或者使用PERFMON工具监控VAS接近100M的时候重启操作系统
ORA-04030一般是由于pga_aggregate_target设置过小,一般有以下解决办法:
1.Increase pga_aggregate_target
2.Decrease sort_area_size and/or hash_area_size
3.Move to multi-threaded server (a.k.a. MTS or shared servers)
如果是linux/unix系统需要检查一下用户的kernel参数限制:
ulimit –a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 4194302
memory(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 4096

目前这个问题我建议客户升级操作系统为64位,解决内存不足的问题

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30291162/viewspace-1700661/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-06-15

  • 博文量
    35
  • 访问量
    24300