ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory

Posted 雅冰石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory相关的知识,希望对你有一定的参考价值。

一 问题描述

无法启动数据库,报错:

 二 排查思路

1.确保sga_target,sga_max_size比可用物理内存小

2.检查kernel.shmmax,kernel.shmall是否设置得太小

一般出现ORA-27102:out of memory,是/etc/sysctl.conf种内核参数kernel.shmmax,kernel.shmall设置得小了。

设置原则:

建议设置kernel.shmmax为物理内存的一半;

建议设置kernel.shmall为物理内存/pagesize;

 --pagesize这样查:getconf PAGESIZE

确保kernel.shmmax比rac集群种所有实例的sga_max_size/sga_target的和要大;

3.检查是否设置了lock_sga=TRUE,如果设置为TRUE的话,需要调大操作系统对oracle用户

max locked memory的大小。
该值默认是64K:

 我这里前两项都是没问题的,第3项有问题。

三 解决办法

(1) 方法一

vi /etc/security/limits.conf,新增如下配置:

oracle hard memlock 237621175

oracle soft memlock 237621175

--注意,这里的大小是服务器内存的大小,单位是KB,我这里是200多G

修改完文件后,再次查看,大小变了:

 (2) 方法二

将lock_sga=TRUE改为lock_sga=FALSE,设置memory_target大小。这样就不用改/etc/security/limits.conf文件了,还能使用memory_target自动调整内存的特性

 

--本篇文章参考自:https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=171goxymby_103&_afrLoop=340512278523285

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory的处理_普通网友的博客-CSDN博客

以上是关于ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory的主要内容,如果未能解决你的问题,请参考以下文章

orcle-ora-27102:out of memory错误处理

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory

ORA-27102:out of memory Linux-x86_64 Error: 12: Cannot allocate memory

ORA-27102: out of memory Linux-X86_64

Linux下安装oracle快结束的时候报错 ORA-27102:out of memory ORA-01034:ORACLE not a availab