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

问题描述

操作系统版本: 

linux-u086:~ # cat /etc/issue

数据库版本:11.2.0.3.0

在启动数据库的时候报如下错误:

oracle@linux-u086:~> sqlplus / as sysdba


SQL*Plus: Release 11.2.0.3.0 Production on Wed Aug 6 12:40:16 2014


Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to an idle instance.


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

SQL> exit

解决方案

这个问题在linux的64位中比较常见,当SGA的值大于共享内存就会报这个错,共享内存在shmall这个参数中设置,shmall单位为页,换算成内存大小还需要把两个值相乘,如shmall=4194304,那么共享内存的大小就是(4194304*4096)/(1024*1024*1024)=16G

1.获得shmall的方式如下

# cat /proc/sys/kernel/shmall

4194304

2.我们可以通过/etc/sysctl.conf文件中kernel.shmall的值来调整共享内存大小

[root@svr28-167 ~]# vi /etc/sysctl.conf

kernel.shmall= 8388608

3.我们可以通过下面命令得到分页大小,默认是4Kb

$ getconf PAGE_SIZE

4096

4.修改完之后没忘记让它立即生效并确认

# sysctl -p

# cat /proc/sys/kernel/shmall

8388608

你可能感兴趣的:(ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device)