调整参数process报错ORA-27154,ORA-27300,ORA-27301,ORA-27302怎么办
这篇文章给大家分享的是有关调整参数process报错ORA-27154,ORA-27300,ORA-27301,ORA-27302怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
调整参数process报错:ORA-27154,ORA-27300,ORA-27301,ORA-27302: failure occurred at: sskgpcreates
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
看提示,会误以为是磁盘空间不足 (No space left on device), 但是仔细看最后的提示(一般报错最后的错误才是根源), 发现是信号量参数设置问题。
kernel.sem = semmsl semmns semopm semmni
调整了下/etc/sysctl.conf,原来值为
kernel.sem =250 32000 100 128
修改为
kernel.sem =250 32000 100 300
问题解决。
process和session的理解:
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/system/ 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。
不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200--2000不等。
semmns的计算公式为:
SEMMNS>processes+instance_processes+system
processes :数据库参数processes的值
instance_processes:5(smon,pmon,dbwr,lgwr,arch)
system :系统所占用信号量。
系统所占用信号量可用下列命令查出:
#ipcs -sb
其中列NSEMS显示系统已占用信号量和其它一些跟连接有关的参数:
licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。
semaphores 参数的优化原则如下:
1. Calculate the minimum total semaphorerequirements using the following formula:
2*sum (process parameters of all database instances on the system) + overhead for background processes + system and other applications.
2. Set semmns (total semaphores systemwide)to this total.
3. Set semmsl (semaphores for each set ) to 256
4. Set semmni (total semaphores sets) tosemmns devided by semmsl, rounded up to the nearest multiple of 1024
感谢各位的阅读!关于"调整参数process报错ORA-27154,ORA-27300,ORA-27301,ORA-27302怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!