ORA-04030

ORA-04030:out of process memory when trying to allocate string bytes

 

这个异常的产生、解决,网上有很多方案,不过都是类似的。无非修改系统限制和修改数据库配置。

 

折腾了一天,按网上说的修改stack、memory后都没成功。最终发现原因是系统ulimit的data没有修改,默认130M,所以oracle进程最大130M,而Oracle的sga设置的2G,pga 750M,远远大于130M导致。

将ulimit的data设为不受限或一个大值即可。

 

改前

$ ulimit -a

time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         131072
stack(kbytes)        4194304
memory(kbytes)       4194304
coredump(blocks)     2097151
nofiles(descriptors) 2000

 

改后

$ ulimit -d 4194304

$ ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         4194304
stack(kbytes)        4194304
memory(kbytes)       4194304
coredump(blocks)     2097151
nofiles(descriptors) 2000

你可能感兴趣的:(oracle)