Wednesday, November 15, 2017

ORA-27102: out of memory Error

Doc ID 301830.1

Sometime, you may get the below error, when you try to start the Oracle database:

SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

One of the reason is, shmall kerne parameter is set to a low value on /etc/sysctl.conf or /proc/sys/kernel/shmall file.

SHMALL is the total amount of shared memory, in pages, that the system can use at one time.
This value is set to 50% of the total physical memory available.

So, your total SGA allocated from all the database, hosted on a server, cannot be greater than the SHMALL value.

How to calculate the Memory limit from SHMALL parameter:

shmall parameter value is set in Page size.
So,
Memory in GB = (shmall * Page size in Bytes)/(1024*1024*1024)


run the below command to get the page size in Bytes : $ getconf PAGE_SIZE





To change the value of shmall, edit the /etc/sysctl.conf file as root and change the value of shmall.
Then, run the below command as root user to make the change to shamall value parmanent, without the need to to reboot the server. (Alternatively, you can reboot the server to make this change permanent).

# sysctl -p

Modifying /etc/sysctl.conf is a permanent workaround (applies at boot time). If for some reason you DO NOT want to change the system wide configuration, you can do it on the fly by directly changing the kernel pseudo FS AKA procfs.


e.g. # echo "4194304" > /proc/sys/kernel/shmall




No comments:

Post a Comment

ASM and Database does not auto start in Oracle restart environment (After Server start)

 If you are supporting Any Oracle restart environment and if you notice that your ASM instance and Database instance does not start automati...