ORA-04031: 无法分配 3896 字节的共享内存

一 问题描述

有同事反馈,程序连接数据库报错:

ORA-04031: 无法分配 3896 字节的共享内存 

用navicat连接oracle,也报如下错误:

查一下当前shared pool的大小:

SQL> select sum(bytes)/1024/1024 mb from v$sgastat where pool='shared pool';

    MB
----------
      5760
 

二 解决办法

2.1 调大sga参数值

--这里调整为12G,需要确保系统可用内存足够

alter system set sga_max_size=12G scope=spfile;
alter system set sga_target=12G scope=spfile;

--备注,我操作的环境是memory_target=0,如果memory_target不为0,还需要增大这个参数的值。

/*

假如执行上述命令的时候也报ORA-04031的错误,则先强制关下库,重启库,释放下内存:

shutdown abort;

startup;

*/

2.2 重启数据库,使参数修改生效

shutdown abort;

startup;

#检查修改是否生效

show parameter sga;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值