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