暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Upon startup of Linux database get ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on device (文档 ID 301830.1)

170

Applies to:

Oracle Database - Enterprise Edition - Version 9.2.0.1 and later

Linux x86-64

***Checked for relevance on 03-Jan-2013***

Symptoms

When trying to increase the SGA to approach half available RAM with an Oracle 64-bit version on a Linux 64-bit operating system, even though SHMMAX is set to match half the amount of RAM, you get 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 on device

 

Ask Questions, Get Help, And Share Your Experiences With This Article

Would you like to explore this topic further with other Oracle Customers, Oracle Employees, and Industry Experts?


Click here to join the discussion where you can ask questions, get help from others, and share your experiences with this specific article.

Discover discussions about other articles and helpful subjects by clicking here to access the main My Oracle Support Community page for Database Install/Upgrade.

Changes

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

$ cat /proc/sys/kernel/shmall

2097152

 

Cause

SHMALL is the total amount of shared memory, in pages, that the system can use at one time.

 

Solution

Set SHMALL equal to the sum of all the SGAs on the system, divided by the page size. 

The page size can be determined using the following command: 

$ getconf PAGE_SIZE

4096

For example, if the sum of all the SGAs on the system 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.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 a reboot is not necessary.

Switch back to the oracle user and retry the startup command.

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



Using HUGEPAGES does not alter the calculation for configuring shmall.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论