Oracle DB failed to start: ORA-27102: out of memory

Oracle not being exactly my turf, I ran into this last week. After some patching and reboot of RHEL 5.9 server, Oracle DB failed to start. So, I took a peek inside /opt/oracle/product/11.2.0/db_1/startup.log and found this:

ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SYS@PRD001 > Disconnected

Lovely. Unfortunately, no DBA was around so I had to do some searching. Thankfully I came across <a title=”ORA-27102: out of memory and Linux-x86_64 Error: 28: No space left on device when changing the SGA” this page that pretty much fit my case.

[root@db0001 db_1]# getconf PAGE_SIZE
4096
[root@db0001 db_1]# sysctl -a | grep shmall
kernel.shmall = 5243392

Going by the suggestion from the above link shmall for my server with 32GB of memory should be: 1024 * 1024 * 1024 * 32 / 4096 which comes to 8388608. This was clearly at odds with what sysctl reported. So…

[root@db0001 db_1]# sysctl kernel.shmall=8388608

After that database startup was successful. Of course, I corrected the parameter in /etc/sysctl.conf so it persists across reboots.

Later I found out whose handy work the incorrect value was… No, it was not me…