使用RMAN工具,进行异机恢复oracle数据库后,在启动数据库的时候,发现数据库出现报错。
ORA-27102: out of memory
因为是新安装的服务器,所以上面的参数是没有调整的。
查看cat /proc/sys/kernel/shmall
524288
表示允许共享的内存页最大可以是 524288个页面。
linux下 getconf PAGE_SIZE16384=8K
表示虚拟内存的一个页面大小为8K
所以我们可以计算一下共享页面
524288*(16384/1024)/1024/1024=8G
而新还原的数据库的sga都有30G,远大于当前的8G,这下问题原因找到了。
那么解决方法就是修改可共享内存,为了以后还原其他数据库不再受到这个问题影响,决定直接修改为128G。
128*1024*1024/8K=8388608
echo "8388608" > /proc/sys/kernel/shmall
再次startup,实例可以启动了