ORA-07252: spcre: semget error, could not allocate semaphores.

文档解释

ORA-07252: spcre: semget error, could not allocate semaphores.

Cause: Semget system call returned an error. Possible resource limit problem.

Action: Check errno. Verify that enough semaphores are available in system. If additional errors occur in destroying the semaphore sets then sercose[0] will be non-zero. If this occurs, remove the semaphore sets using ipcrm.

官方解释

ORA-07252: spcre: semget error,该错误发生在Oracle分配内部结构时,一个特定的情况是使用System V信号量。「semget」显示 Oracle 无法从信号量集中分配一个信号量。

常见案例

ORA-07252: spcre: semget error案例常见于并发性很高,并且系统并发数超过最大允许值的系统。

正常处理方法及步骤

这个错误的处理主要是增加系统的信号量数量,建议使用 /dev/shm 来放大信号量,不管把Semaphores设置为最大值,请记住按照原则“尽可能少,尽可能小”(Max= Minimum)。 如果没有问题,增加一倍,直到数目 尽可能少,尽可能小 的限制。

(1)执行命令 # ipcs -ls,查看系统信号量的最大数量:

(2)例如系统默认的 Semaphores 设置为 256,如果超出这个参数,则需要增加相应的值。

(3)执行命令 # vi /etc/sysctl.conf,在文件最前面加上下列两行:

(4)kernel.sem=256 32000 32 256

(5)执行命令 # sysctl -p,使 /etc/sysctl.conf 中定义的设置在系统中立即生效。

(6)重新登陆 Oracle 用户,并重新启动 Oracle 服务器。

你可能感兴趣的