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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值