ORA-27301: OS failure message: No space left on device | Semaphores

0 0
0 0

In this solution let us see how to increase the value of the semaphore in Linux for increasing the processes while we try to start the Oracle multi-instances. It will come under the tuning and optimizing category of Oracle databases.

When this issue occurred?

After creating a new database on an existing production database server. This guide will help to resolve the semaphore issue or if you are looking for

How to Change Kernel Semaphore Limits in RHEL and CentOS Linux Servers?

Solution for following Errors

This is the actual error we are getting while trying to bring up the newly created database.

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

Check current Value

The current value can be checked in two ways or more ways.

[root@gateway ~]# sysctl -a | grep -i "kernel.sem"
kernel.sem = 32000	1024000000	500	32000
kernel.sem_next_id = -1
[root@gateway ~]#

Are cat the /proc filesystem

[root@gateway ~]# cat /proc/sys/kernel/sem
 32000    1024000000  500 32000
[root@gateway ~]#

Else we can use the ipcs command to list the same.

[root@gateway ~]# ipcs -l

------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

[root@gateway ~]# 

Making temporary changes

We can make some changes without adding into sysctl.conf. It can be done by, enable writing a value to variable.

# echo 250 32000 100 428 > /proc/sys/kernel/sem 
# sysctl -w kernel.sem="250 32000 100 428"

Making Permanent Changes

To change the value of the semaphore we can perform by editing the below file.

# vi /etc/sysctl.conf
kernel.sem = 250 32000 100 428

semaphores Value has been configured to take effect we need to run

# sysctl -p

That’s it we can now start the Oracle Database instances by avoiding above error.

ORA-27301: OS failure message: No space left on device | Semaphores 1

About Post Author

Babin Lonston

Overall 14+ Years of experience in the IT field, currently working as a Senior Linux administration with Virtualization & Cloud. Being numismatist for a long time.
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Your email address will not be published.

Previous post Solution for tar: ././@LongLink: typeflag ‘L’ not recognized, converting to regular file x ././@LongLink, 103 bytes, 1 tape blocks
Solution for IO error after removing SAN disks from Volume Group Next post Solution for I/O error after removing SAN disks from Volume Group

Subscribe

Subscribe To Our Newsletter

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

We promise not to spam you, and we don't usually send more than one email a week.

You have Successfully Subscribed!