ORA-27102: out of memory

64bit Redhat Linux,

[oracle@DB ~]$ uname -a
Linux DB 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

 

物理內存16G,SGA分配4G時,instance可以正常啓動,超過4G了,就報“out of memory”的錯誤。

SQL> startup nomount pfile='/home/oracle/init.ora' 
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

 

查了一下metalink,說這個問題是內核參數shmall太小的緣故,查看當前內核參數設置:

$ cat /proc/sys/kernel/shmall
2097152

 

通常這個值也是缺省值,建議改大。修改內核參數配置文件/etc/sysctl.cfg:

kernel.shmmax = 8294967295
kernel.shmmni = 4096
kernel.shmall = 4194304

 

執行生效:

[root@DB ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 8294967295
kernel.shmmni = 4096
kernel.shmall = 4194304
kernel.msgmax = 8192
kernel.msgmnb = 32768
kernel.msgmni = 2048
kernel.sem = 512 64000 128 512
fs.file-max = 65536
fs.aio-max-nr = 1048576
net.core.rmem_max = 262144
net.core.wmem_max = 262144
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_rmem = 262144 262144 262144
net.ipv4.tcp_wmem = 262144 262144 262144

 

再次啓動實例,正常。

 

參考文檔:

 

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

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=678630284455922&id=301830.1&displayIndex=20&_afrWindowMode=0&_adf.ctrl-state=sjckvzhrj_101

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章