ORA-27154 post/wait create failed

Today, while oracle database startup we got “ORA-27154: post/wait create failed” error message. ( We have multiple databases running on same env. )

After diagnosis, it was the problem with kernel parameter: kernel.sem

SQL> startup

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

Solution:
Edit “/etc/sysctl.conf” file with following value for the kernel.sem

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 250 32000 100 256

 

After save above changes, issue following command to reflects edited value parameter into the environment.

sysctl -p

 

After changing above value, database will be open:
SQL> startup
ORACLE instance started.
Total System Global Area 389189632 bytes
Fixed Size 1336736 bytes
Variable Size 268438112 bytes
Database Buffers 113246208 bytes
Redo Buffers 6168576 bytes

Database mounted.
Database opened.

***********************************************************************

Note: Please don’t hesitate to revert in case of any query OR feedback.

Thanking you.

Have a easy life ahead.

11 thoughts on “ORA-27154 post/wait create failed

  1. Hi Jignesh,

    Thank you, its helps me clearing the error in a single step. Now i can able to connect

    Regards
    Harsha

  2. I got this error while I was creating a new database in RAC mode. but we have exact same server build the same way but we didn’t get that error. and they both have the same values.
    any explanation why we getting that on this server but didn’t get on the other server.

    • Thank you Marivn for writing!
      This error mostly occurred due to sysctl.conf and limits.conf where not properly configured.
      What is your kernel.sem ?
      What is DB edition n version ?
      $ ipcs ?

      Consider following to understand more about it:
      kernel.sem = 250 32000 100 128 >>>> This indicates that 250 semaphores can be accommodated in an array and maximum of 128 arrays can be in the system.
      So, in total, 32000 (250X128) semaphores can present in the system.
      Thus We need to increase the maximum number of arrays that can be present on the server.

      Kindly follow the below steps:
      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
      and try to create db.

  3. Hi Jignesh,

    Every body should edit in root user only, through putty i have changed but It will not work but though VM ware workstation now it will work.
    After save the value which he given that we should use sysctl -p then only It will work other wise It wont work

    SQL> startup
    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: sskgpsemsper

    [
    [root@localhost etc]# sysctl -p
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 4294967295
    kernel.shmall = 268435456
    fs.file-max = 6815744
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.wmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_max = 1048576
    fs.aio-max-nr = 1048576
    kernel.sem = 250 32000 100 256

    SQL> startup
    ORACLE instance started.

    Total System Global Area 313860096 bytes
    Fixed Size 1336232 bytes
    Variable Size 201329752 bytes
    Database Buffers 104857600 bytes
    Redo Buffers 6336512 bytes
    Database mounted.
    Database opened.

    Thanks Regards,
    Bala

Leave a Reply

%d bloggers like this: