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

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

点赞