在RAC环境中的ORA-4030

ORA-04030: out of process memory when trying to allocate string bytes (string,string)
Cause: Operating system process private memory has been exhausted

我们知道通常这种错误都是由于内存不够,或者操作系统的限制造成的,但是最近碰到的问题比较别出心裁:

在RAC环境中,安装是完全按照官方的文档来的,包括操作系统的限制:ulimit,maxuproc等都已经按照官方文档做了,结果在执行某些大的查询时还是出现了下面的错误

1f959c33ae3fcccb1b4cffc0.jpg



最终在metalink上找到了这么一个说明看上去比较相符:

Symptoms
The error is reported only if the queries run from a client (through sqlnet)
Ct performed some test and found that the error is reported only if the listener and the database
are started as CRS services.(After node reboot or by srvctl)
But if customer start listener or DB by lsnrctl or SQLPLUS the sessions not having this problem


Cause
-User root has OS resource limitation
-When CRS start the resources it's started with root user (Which has OS resource limitation) which lead to ora-4030
-If resources started by SQLPLUS,LSNRCTL the resources started with no OS resource limitation as Oracle user has no OS resource limitation

显然已经说得很明白了,官方文档安装时让改了oracle用户的limit,但是RAC环境中如果db或者listener是由root用户执行srvctl启动,则会受到root用户的limit限制。

经测试在修改了root用户的ulimit之后,问题没有再出现。
参与1

0同行回答

“答”则兼济天下,请您为题主分忧!

提问者

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-01-20
  • 关注会员:1 人
  • 问题浏览:2611
  • X社区推广