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

一、问题现象
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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/751371/viewspace-1070514/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值