I got ” ORA-27154: post/wait create failed ” error in Oracle database.
ORA-27154: post/wait create failed
Details of error are as follows.
Attempting to startup instance, fails with error 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 occured at: sskgpcreates
post/wait create failed
SEMMNS is set to 230 against 1024(Minimum Recommended).
The low value of SEMMNS is preventing to start the instance.
The SEMMNS parameter should be set to the sum of the PROCESSES parameter for each Oracle database, adding the largest one twice, and then adding an additional 10 for each database.
SEMMSL is set to 60 against 256 (Minimum Recommended).
This is recommended in both the Oracle 9.2 and 10.2 installation guides.
To implement the solution, please execute the following steps:
1. Set the kernel parameter as recommended in
Oracle 9.2 Installation Guide:
Oracle 10.2 Installation Guide (for Solaris 8 and 9):
(refer to 10.2 Installation Guide for specific recommendations on Solaris 10 parameter settings)
2. Reduce the Processes in Init.ora file to small value.
(This is useful when you don’t want to reboot the Unix server as a change of kernel setting requires a reboot for changes to be reflected)
1. If you have previously changed your kernel for another program to levels equal to or higher than the levels recommended in the Installation Guide, then do not change the settings. If the levels are too low, change them to levels at least as high as those in the table.
2. If you change the kernel settings, save the /etc/system file and restart the system to reflect the change
On a linux server, when an additional database instance is brought up, getting errors:
SQL> startup nomount 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
An additional database has been created on a linux server.
PROCESSES parameter in init.ora set to the correct value, accordingly.
Linux Kernel Parameter for Semaphore – Total 32000 semaphore are available in the system but still gets an error – ORA-27300.
$ ipcs -ls ------ Semaphore Limits -------- max number of arrays = 128 // SEMMNI max semaphores per array = 250 // SEMMSL max semaphores system wide = 32000 // SEMMNS max ops per semop call = 100 // SEMOP semaphore max value = 32767
In theory, 32000 semaphores are available in the system and one semaphore identifier can accommodate a maximum of 250 semaphores with
the configuration above.
But ipcs command shows each semaphore identifier accomodates maximum of 156 semaphores by Oracle.
$ ipcs << For this case, it has around 100 semaphore identifiers being used without bringing up the additional instance.
------ Semaphore Arrays -------- key semid owner perms nsems 0x450e15bd 0 root 666 1 0x0000cace 32769 root 666 1 0x358b172c 327683 oracle 660 104 0x9053d038 11075588 oracle 660 156 0x9053d039 11108357 oracle 660 156 0x9053d03a 11141126 oracle 660 156 0x9053d03b 11173895 oracle 660 156 ..
According to this figure, the maximum available semaphores in this server will be 156 x 128 = 19968, not 32000.
SEMMNI should be increased to accomodate more semaphores.
1. Query the current semaphore values in the kernel
# /sbin/sysctl -a | grep sem
2. Modify SEMMNI value in the /etc/sysctl.conf.
From kernel.sem = 250 32000 100 128 To kernel.sem = 250 32000 100 200 3. # /sbin/sysctl -p
140 views last month, 1 views today