溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

startup Linux下oracle報(bào)以下錯(cuò)

發(fā)布時(shí)間:2020-08-03 22:52:17 來(lái)源:網(wǎng)絡(luò) 閱讀:534 作者:Evils798 欄目:關(guān)系型數(shù)據(jù)庫(kù)
startup Linux下oracle報(bào)以下錯(cuò)
ORA-27102:out of memory Linux-X86_64 
Error: 28: No space left on device      [ID 301830.1]


適用于:
Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later   [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

    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:
    在64位linux下使用64位版本的oracle,即使把shmmax參數(shù)的大小設(shè)置系統(tǒng)可用內(nèi)存的一半,
當(dāng)把SGA增加到接近一半的系統(tǒng)內(nèi)存時(shí)候,當(dāng)startup實(shí)例的時(shí)候,可能得到以下錯(cuò)誤

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


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. 

shmall是系統(tǒng)在所有頁(yè)同一時(shí)間使用的共享內(nèi)存段的總數(shù)


Solution
解決辦法

Set shmall equal to the sum of all the SGAs on the system, divided by the page size. 
設(shè)定shmall的值為等同于在系統(tǒng)中所有SGA占用內(nèi)存大小除以分頁(yè)大小的得出的最后的值

The page size can be determined using the following command: 
用以下命令得到分頁(yè)的大小
$ 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

例如,如果系統(tǒng)中所有SGA的綜合為16Gb,然后getconf PAGE_SIZE 得出的結(jié)果是4096(4k)
那么shmall就設(shè)定為4194304頁(yè)

As the root user set the shmall to 4194304 in the /etc/sysctl.conf file:
用root用戶在/etc/sysctl.conf 文件中設(shè)定shmall為 4194304

kernel.shmall = 4194304

then run the following command:
設(shè)定后執(zhí)行以下命令

$ sysctl -p
$ cat /proc/sys/kernel/shmall
4194304


NOTE:

The above command loads the new value and a reboot is not necessary.
以上命令無(wú)須重啟
Switch back to being the oracle user and retry the startup command.
切換到oracle用戶,重新執(zhí)行startup命令

Modifying /etc/sysctl.conf is a permanent workaround (applies at boot time). 

修改/etc/sysctl.conf 是一個(gè)永久的解決辦法(適用于開(kāi)機(jī)時(shí)間)

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.
如果出于某種原因不詳對(duì)系統(tǒng)大范圍改動(dòng)配置,可以直接改變內(nèi)核的pseudo FS AKA procfs.

# echo "4194304" > /proc/sys/kernel/shmall

Using HUGEPAGES does not alter the calculation for configuring shmall.
使用大頁(yè)不會(huì)改變配置shmall的計(jì)算結(jié)果


以上翻譯僅供參考
References

NOTE:169706.1 - Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
NOTE:851598.1 - Master Note of Linux OS Requirements for Database Server
NOTE:1351051.2 - Information Center: Install and Configure Database Server/Client Installations
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Standard Edition
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition

64-BIT; 64BIT; HUGEPAGES; INSTALL & CONFIGURE; LINUX; NO SPACE LEFT ON DEVICE; OUT OF MEMORY; START INSTANCE

ORA-27102

Copyright (c) 2007, 2010, Oracle. All rights reserved. Legal Notices and Terms of Use | Privacy Statement


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI