ORA-04031: unable to allocate 752 bytes of shared memory解决办法

因为我这里使用的是linux和Oracle,所有首先找到Oracle数据库所在的服务器。

1.切换到oracle用户:su - oracle
2.使用sqlplus连接数据库:sqlplus / as sysdba
3.查一下当前shared pool的大小:
select sum(bytes)/1024/1024 mb from v$sgastat where pool=‘shared pool’;
如果这里提示
ERROR at line 1:
ORA-01012: not logged on
的话建议关掉数据库监听,关掉数据库服务然后再启动监听和数据库服务。
命令如下:

 1).先退出sqlplus:ctrl+z
 2).查看数据库监听器的状况:lsnrctl status
 3).停止数据库监听器运行:lsnrctl stop
 4).进入sqlplus :sqlplus / as sysdba
 5).关闭数据库服务:shutdown immediate(如果这里执行后还是报ORA-04031可以执行
     shutdown abort,在这之前记得备份数据!切记!)
 6).退出sqlplus:ctrl+z
 7).启动数据库监听器:lsnrctl start
 8).进入sqlplus :sqlplus / as sysdba
 9).开启数据库服务:startup
 10).然后再查询当前shared pool的大小:select sum(bytes)/1024/1024 mb from 
       v$sgastat  where pool='shared pool';
      
 如果没有提示错误,就继续往下走。

4.退出sqlplus:ctrl+z
5.查看总内存:free
6.用如下命令修改SGA_MAX_SIZE与SGA_TARGET的值,调大一些,
比如调整为总内存的60%-70%,数据库正常。
SQL> alter system set sga_max_size=2G scope=spfile;
SQL> alter system set sga_target=2G scope=spfile;
7.修改之后重新启动一下数据库服务就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值