操作系统版本: 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,那么共享内存的大小就是(41943044096)/(10241024*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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐