Thursday, January 8, 2009

ORA-27102: out of memory

Though we may have sufficient free physical memory, we often see this error message indicative of low memory availability. But the actual cause of this error is typically caused by the incorrect value set for shmall kernel parameter.

1. Let' set the value for shmall to a very low value.

Current Value:

[root@chandra ~]# sysctl -a grep shmall

kernel.shmall = 1000000

[root@chandra ~]#

Setting the value to a new/low value:

[root@chandra ~]# sysctl -w kernel.shmall=10000

kernel.shmall = 10000

[root@chandra ~]# sysctl -a grep shmall

kernel.shmall = 10000

[root@chandra ~]#

2. An attempt to startup the database fails with ORA-27102

SQL> startup

ORA-27102: out of memory

Linux Error: 28: No space left on device

SQL>

It failed with "out of memory" error message, though, we have 500M free space

[root@chandra ~]# free

total used free shared buffers cached

Mem: 2066192 1488748 577444 0 18496 1134776

-/+ buffers/cache: 335476 1730716

Swap: 8225172 0 8225172

[root@chandra ~]#

3. Let's set the shmall back to value to a high value:

[root@chandra ~]# sysctl -w kernel.shmall=1000000

kernel.shmall = 1000000

[root@chandra ~]#

4. An attempt to startup the database just works, even though nothing from the memory utilization or availability perspective changed!

No comments: