You got the below error when starting up the Oracle database.
SQL> STARTUP ORA-27125: unable to create shared memory segment Linux-x86_64 Error: 28: No space left on device Additional information: 3760 Additional information: 4278190080
The Solution
This occurs when the Kernel parameter kernel.shmall is too small. You can get the value of shmall kernel parameter with below command:
# /sbin/sysctl -a | grep shm
Set the kernel parameter SHMALL greater than or equal to the minimum recommended value. The setting for SHMALL specifies the total amount of shared memory, in pages, that the system can use at one time.
Follow the steps below to fix the problem.
1. Determine the page size.
$ getconf PAGE_SIZE 4096
2. Determine the Total System Global Area (SGA).
SQL> SHOW SGA Total System Global Area 6442450944 bytes Fixed Size 2938792 bytes Variable Size 3892316248 bytes Database Buffers 2533359616 bytes Redo Buffers 13836288 bytes
3. Calculate the recommended value for shmall.
shmall = SGA / PAGE_SIZE
With SGA = 6 GB and PAGE_SIZE = 4096, the shmall is:
shmall = 6 * 1024 * 1024 * 1024 / 4096 = 1572864
4. Update the kernel.shmall parameter. Login the Linux machine as root.
$ vi /etc/sysctl.conf
Scroll down to find kernel.shmall and change it’s value to 1572864.
5. Apply the change.
$ sysctl -p
6. Verify the value.
$ cat /proc/sys/kernel/shmall 1572864
7. Login to the Oracle database as sysdba and start the database.
SQL> STARTUP ORACLE instance started.