如何处理ORA-27102: out of memory…

来源:互联网 发布:讲文明知礼仪海报 编辑:程序博客网 时间:2024/06/06 20:14
Upon startup ofLinux database get ORA-27102: out of memory Linux-X86_64 Error: 28:No space left on device [ID 301830.1]
 修改时间19-DEC-2011     类型PROBLEM     状态PUBLISHED 

In this Document
  Symptoms
  Changes
  Cause
  Solution
  References


Applies to:

Oracle Server - Enterprise Edition - Version: 9.2.0.1 andlater   [Release:9.2 and later ]
Oracle Server - Standard Edition - Version:9.2.0.1 and later   [Release:9.2 and later]
Oracle Server - Enterprise Edition - Version:9.2.0.1 and later   [Release:9.2 and later]
Linux x86-64

Symptoms

When trying to increase the SGA to approach half availableRAM with an Oracle 64-bit version on a Linux64-bit operating system, even though shmmax is set to match half the amountof  RAM, you get the following error when tryingto start the instance:


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

Changes

shmall is too small, mostlikely is set to the default setting of 2097152

$ cat /proc/sys/kernel/shmall
2097152


Cause

shmall isthe total amount of shared memory, in pages, that the system canuse at one time.

Solution

Set shmall equal to the sumof all the SGAs on the system, divided by the pagesize. 

The page size can be determined using thefollowing command: 

$getconf PAGE_SIZE
4096

For example, if the sum of all the SGAs on thesystem is 16Gb and the result of '$ getconf PAGE_SIZE' is 4096(4Kb) then set shmall to 4194304 pages

As the root user set the shmall to 4194304 in the /etc/sysctl.conffile:

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 and retry the startupcommand.

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

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

Using HUGEPAGES does not alter the calculation forconfiguring shmall.

References

NOTE:169706.1- Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64Unix Operating Systems Installation and Configuration RequirementsQuick Reference (8.0.5 to 11.2)
NOTE:851598.1 - Master Note of Linux OS Requirements forDatabase Server
NOTE:1351051.2 - Information Center: Install and ConfigureDatabase Server/Client Installations

0 0
原创粉丝点击