通过桌面安装Oracle在分配SGA的时候报如下错误:

[INS-35172] Target database memory (XXMB) exceeds the systems available shared memory ({0}MB)

 

一开始一直以为是系统参数分配不足导致的,检查/etc/sysctl.conf中的如下参数

kernel.shmall = 2097152                       # 共享内存页数 shmmax/4096

kernel.shmmax = 8589934592             # 最大的共享内存段
kernel.shmmni = 4096                           # 内核共享段的最大数值

 

发现没有作用,查看了一下free 也是足够大的,那么systems available shared memory到底是指什么,查看了一下分区df -h发现tmpfs的值恰好是与上述值相同,说明tmfs指的就是可用的共享内存。

 

在/etc/fstab下找到该内容,增加size定义共享内存大小

tmpfs            /dev/shm        tmpfs  defaults,size=10G        0 0

 

重启系统后生效。