When trying to increase the SGA to approachhalf available RAM with an Oracle 64bit version on a Linux 64bit operatingsystem, even though shmmax is set to match half the amount of RAM, youget the following error when trying to start the instance:
SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left ondevice
Changes
shmall is too small, most likely is set tothe default setting of 2097152
$ cat /proc/sys/kernel/shmall
2097152
Cause
shmall is the total amount of sharedmemory, in pages, that the system can use at one time.
Solution
Set shmall equal to the sum of all the SGAson the system, divided by the page size.
The page size can be determined using thefollowing command:
$ getconf PAGE_SIZE
4096
For example, if the sum of all the SGAs onthe system is 16Gb and the result of '$ getconf PAGE_SIZE' is 4096 (4Kb)then set shmall to 4194304 (4Mb)
As the root user set the shmall to 4194304in the /etc/sysctl.conf file:
kernel.shmall = 4194304
then run the following command:
# sysctl –p
# cat /proc/sys/kernel/shmall
4194304
NOTE:
The above command loads the new value and areboot is not necessary
Switch back to being the oracle user andretry the startup command.
References
Note 169706.1 - Oracle? Database onAIX?,HP-UX?,Linux?,Mac OS? X,Solaris?,Tru64 Unix? Operating SystemsInstallation and Configuration Requirements Quick Reference (8.0.5 to 11.1)
Keywords
NO~SPACE~LEFT~ON~DEVICE ; START~INSTANCE ;OUT~OF~MEMORY ; 64BIT ;