• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

ORA-27125: unable to create shared memory segment; Error: 28: No space left on device

by admin

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.

Note: If you could not find the SGA at step 2, you may try to double the current value of shmall.

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.

Filed Under: oracle

Some more articles you might also be interested in …

  1. New Background Processes In Oracle Database 12c
  2. Steps to relink Oracle Forms 12c in Linux/UNIX
  3. How to Recover A Dropped Tablespace Using TSPITR
  4. How to use Privilege Analysis in Oracle Database
  5. How to set EVENTS in spfile
  6. How To Catalog Backups / Archivelogs / Datafile Copies / Controlfile Copies in Oracle Database
  7. Oracle Net New Features in Oracle Database 12c
  8. Automatic Stop of Oracle Database (dbshut) not working in CentOS/RHEL 7 with systemd
  9. How to monitor Undo Tablespace Usage and the Free Space in Oracle Database
  10. Oracle Database: Redo log operations (Add/Drop/Change Location)

You May Also Like

Primary Sidebar

Recent Posts

  • JavaFX ComboBox: Set a value to the combo box
  • Nginx load balancing
  • nginx 504 gateway time-out
  • Images preview with ngx_http_image_filter_module

© 2022 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright