ITPub博客

首页 > 数据库 > Oracle > ORA-04030: out of process memory when trying to allocate **bytes (sort subheap)

ORA-04030: out of process memory when trying to allocate **bytes (sort subheap)

原创 Oracle 作者:听海★蓝心梦 时间:2014-01-14 17:01:50 0 删除 编辑
一、问题现象
ORA-04030: out of process memory when trying to allocate 64544 bytes (sort subheap)

二、问题诊断
根据错误提示,可以确定是在操作数据库时内存不够造成的。
检查ORACLE数据库内存使用情况,发现SGA和PGA内存使用都有剩余。
然后检查操作系统用户的内存设置,发现/etc/security/limits文件中应用账户sde内存限制过小。

三、问题解决

1、先调整数据库服务器上sde用户的单个进程的数据段限制,由131072调整为ulimited.
  
$ ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         131072
stack(kbytes)        4194304
memory(kbytes)       32768
coredump(blocks)     0
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user)  unlimited

2、编辑/etc/security/limits文件,添加sde用户参数值
# vi /etc/security/limits
sde:
        fsize = -1
        core = -1
        cpu = -1
        data = -1
        rss = -1
        stack = -1
        nofiles = -1
        fsize_hard = -1
        core_hard = -1
        cpu_hard = -1
        data_hard = -1
        rss_hard = -1
        stack_hard = -1
        nofiles_hard = -1  

3、重启数据库监听
# su - oracle
$ lsnrctl stop
$ lsnrctl start

监听启动后,重新执行应用,应用成功执行。至此,问题解决。



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

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

注册时间:2009-02-18

  • 博文量
    256
  • 访问量
    1196202