When I startup the new Oracle Instance, I got ” ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpcreates ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27154: post/wait create failed ” error.
ORA-27300: OS system dependent operation:semget failed with status: 28
Details of error are as follows.
[MSDBA]/home/oracle $ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Wed Jun 24 21:59:24 2020 Version 18.3.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to an idle instance. 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 SQL>
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
This error ORA-27154 ORA-27300 ORA-27301 ORA-27302 is related with the PROCESSES parameter in init.ora set to the incorrect value.
To solve this problem, You should decrease the processes parameter.
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
PROCESSES parameter was 3000, I have changed it to 500, Then startup Oracle Instance again, it will startup.
[MSDBA]/home/oracle $ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Fri Jun 19 23:16:23 2020 Version 18.3.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to an idle instance. SQL> startup; ORACLE instance started. Total System Global Area 1.0737E+10 bytes Fixed Size 12207952 bytes Variable Size 2717908992 bytes Database Buffers 7952400384 bytes Redo Buffers 54898688 bytes SQL> exit Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.3.0.0.0 [MSDBA]/home/oracle $
Do you want to learn Oracle Database for Beginners, then read the following articles.
Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )