1、关于修改solaris10内核参数问题。。错误ORA-27102 "Out of Memory"   。。


之前在HP-UXAIX系统上,安装oracle时,都有提到过修改OS内核参数的问题。主要是增大内存需求。。oracle在安装或启动、运行时,应该都是比较耗内存的。。

但在solaris中却没有进行内核参数修改。。


问题描述及解决:在solaris2中已经正常运行orcl数据库,想再建一个orcl1,供备份测试用,但用dbca刚执行建立,就会报out of memory错误,,忽略后直接ORA-1034 ORACLE not available,就终止操作了。。

然后就在solaris1中,建库试试,solaris2solaris1两台机器硬件配置及OSoracle版本均完全相同。。solaris1中原来没有库,只是安装了数据库软件,然后在solaris1中成功建立了orcl1库,然后接着建立了orcl2库,sga均是自动的,并设置为最低值(OS内存的11%)【不过em没有建成功,报错,不知为何,,先没管。。见附图。。】。。

最后在solaris2中,按照网上所说,用root用户在/etc/system文件中加入下列内容:

set noexec_user_stack=1

set semsys:seminfo_semmni=100

set semsys:seminfo_semmns=25600

set semsys:seminfo_semmsl=256

set semsys:seminfo_semvmx=32767

set shmsys:shminfo_shmmax=4294967295

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=100

set shmsys:shminfo_shmseg=10


然后重启reboot,再次用oracle用户建库orcl1dbca建库成功!接着建立orcl2再次成功。orcl1orcl2均是采用的最新sga 11%)后来又把上述参数去掉了,重启后再试试看。。结果,原先的orcl都不能启动了(同样报out of memory错误)。。且dbca也无法再建库了。。orcl1orcl2都能成功启动(应该是sga分配较小的缘故)。。

再次在/etc/system中加入上述参数设置,一切OK,问题解决。


结论证明:上述内核参数的修改是必须且重要的。否则默认的内存设置,已经有一个启动的数据库实例,且该实例sga较大的话,再进行dbca或者再打开另一个数据库时,都会造成oracle内存不够用,报错out of memory。。solaris1机器上做测试时没有遇到out of memory错误是由于建立的测试库所分配的sga都很小(下限值11%),,故没有测出问题。。而solaris2中已运行的orcl库貌似当初建库时分配的sga内存空间较大。。。