Linux-x86_64 Error: 28: No space left on device问题

2014-11-24 18:20:47 · 作者: · 浏览: 1

操作系统版本: Linux 64位


数据库版本:任何版本


问题描述


修改数据库参数后启动数据库报错


SQL> startup nomount


ORA-27102: out of memory


Linux-x86_64 Error: 28: No space left on device


解决方案


这个问题在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