vincentqchow 2014-04-28 02:10 采纳率: 0%
浏览 2503

ORA-04030:在尝试分配8192字节(sort subheap,sort key)时进程内存不足

先来描述一下我的环境吧:window 32bit, oracle9i,session和process的数量在正常时100左右,OS内存以前是2G,现在加到了8G,系统在4月1号之前已经正常运行2年之久,没出过啥大问题,从4月1日愚人节开始,每天必down。
alert日志中见到最多的就是ORA-04030错误,而且一般伴随着
skgpspawn failed:category = 27143, depinfo = 9261, op = spdcr, loc = skgpspawn 信息
在出问题的时段监听日志listener.log:
TNS-12560: TNS: 协议适配器错误
TNS-00530: 协议适配器错误
32-bit Windows Error: 54: Unknown error
TNS-12500: TNS:监听器未能启动专用的服务器进程
TNS-12540: TNS:超出内部极限限制
TNS-12560: TNS: 协议适配器错误
TNS-00510: 超出内部极限限制
32-bit Windows Error: 8: Exec format error

在外面的表现来看,就是将要出问题之前,新的连接进不去,但已建立的连接可以继续操作,但也只能做小数据量查询。网上查的资料都说是系统资源不足,特别是内存,后来内存从2G加到8G,对应也调整了PGA和SGA大小,但问题依然出现,每个4-5小时就出现PL/SQL连接不进去:
ORA-04030: out of process memory when trying to allocate 33292 bytes (pga heap,……
每次只需要重启windows上的oracle实例服务就好了。后来通过process explorer线程查看工具偶然发现,每4-5个小时的时间内,ORACLE.EXE进程下的线程从100一直网上涨,大概到980左右就挂了,然而在SQL里查出来的线程(包括后台进程)一直都是比较正常的数值100左右,不知道操作系统哪里还有oracle的资源没有释放,也统计了oracle即将出问题的时候(oralce.exe进程内存从200M涨到最高值580M),这些看起来比较正常的100来个sessiond的PGA/SGA占用,都比较正常。
不知道是否有人遇到过类似的问题,因为应用是买的,所以从32位改成64位需要重新部署引用,实施费用公司肯定是不同意的。正考虑从9i升级到10g,但依然没有把握。究竟是什么问题呢?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥35 平滑拟合曲线该如何生成
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集