Ora-27102: Out Of Memory: Linux Error: 12: Cannot Allocate Memory with LOCK_SGA=TRUE 

In this Document
  Symptoms   Cause   Solution


Applies to:


Linux OS - Version: Enterprise Linux 4.2 and later   [Release: RHEL4U2 and later ]


Linux x86


Linux x86-64


Linux Kernel - Version: 4.2

Symptoms


After setting oracle init.ora parameter "lock_sga=true" , the instance will not start, gets



ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory on startup



SQL> startup nomount

ORA-27102: out of memory

Linux Error: 12: Cannot allocate memory

SQL> startup mount;

ORA-27102: out of memory

Linux Error: 12: Cannot allocate memory


.


Cause


The "ulimit -l" parameter is not set to allow the amount of memory (sga size) being requested to be locked. For example:



# ulimit -a
 core file size (blocks, -c) 0
 data seg size (kbytes, -d) unlimited
 scheduling priority (-e) 20
 file size (blocks, -f) unlimited
 pending signals (-i) 16382
 max locked memory (kbytes, -l) 64                 # <<<<<<<
 max memory size (kbytes, -m) unlimited
 open files (-n) 1024
 pipe size (512 bytes, -p) 8
 POSIX message queues (bytes, -q) 819200
 real-time priority (-r) 0
 stack size (kbytes, -s) 8192
 cpu time (seconds, -t) unlimited
 max user processes (-u) unlimited
 virtual memory (kbytes, -v) unlimited
 file locks (-x) unlimited




Refer to the "man" page for ulimit -l




Solution

To implement the solution do:


Issue command "ulimit -l unlimited" prior to starting the instance