ORA-27102:out of memory

博主在调整数据库参数后遇到无法启动的问题,错误源于kernel.shmmax值设置过小。通过检查发现系统仍有大量内存可用。经分析,Oracle建议SGA能在单一共享内存段下容纳,因此调整kernel.shmmax至超过SGA_target值,解决了启动故障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 问题描述

昨晚修改一个数据库参数,需要重启数据库,才能生效。结果发现数据库起不来了,启动报错:

#查看下sga,pga相关配置

create pfile='自定义路径/init_rac1.ora' from spfile;

less init_rac1.ora,查看sga_target=64G,pga_aggregate_target=32g

以为服务器内存不足,结果执行free -m发现也还有200G内存可用呢,一开始觉得很奇怪。

二 出错原因

kernel.shmmax的值太小,发现根本就没配置这个参数:

kernel.shmmax 用于定义单个共享内存段的最大值,shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。

Oralce 的建议是希望一个大的共享内存段能容纳整个SGA,这样在任何时候都不会有甚至轻微的性能下降的隐患。

三 解决办法

调大kernel.shmmax的值,使其大于sga_target大小。

vi /etc/sysctl.conf,新增:

kernel.shmmax=70000000000  #这里将其设置为近70G

#使修改生效

sysctl -p

再次启动数据库,不再报错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雅冰石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值