紧急求助:ora-04031:unable to allocate 27996 bytes of share memory

linxi 2008-07-14 03:06:54
紧急求助:ora-04031:unable to allocate 27996 bytes of share memory 我用的是10G
...全文
564 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangkun2001 2010-06-17
  • 打赏
  • 举报
回复
ALTER SYSTEM
FLUSH SHARED_POOL;

试一试这个
vc555 2008-07-14
  • 打赏
  • 举报
回复
你可以在sqlplus中:show pool看看这些内存值的大小。

10G的话最好启用ASMM,让oracle自动管理内存,分配SGA的大小。
只需设置:
alter system set sga_target=300m scope=spfile; --设置SGA的目标值为300mb
alter system set sga_max_size=300m scope=spfile; --设置SGA的最大值为300mb
再:
alter system set shared_pool_size=0;
还有这些SGA组件也可自动管理:db_cache_size,large_pool_size, java_pool_size。

最后重启实例后生效。

linxi 2008-07-14
  • 打赏
  • 举报
回复
2G的内存要怎么分配pvg,和svg?
oracledbalgtu 2008-07-14
  • 打赏
  • 举报
回复
查看数据库的配置参数是否正确,尤其是shared_pool_size,
或者通过如下sql确认:
select pool,sum(bytes) from v$sgastat group by pool;
如果设置正确,不排除遇到oracle bug的可能。


[Quote=引用楼主 linxi 的帖子:]
紧急求助:ora-04031:unable to allocate 27996 bytes of share memory 我用的是10G
[/Quote]
ymilktea 2008-07-14
  • 打赏
  • 举报
回复
flush sga...


同楼上的结论, 可能是你的SGA碎片化严重,最有效的解决办法应该是修改参数, 不能重启数据库的话就flush sga 了。
子陌红尘 2008-07-14
  • 打赏
  • 举报
回复
You should increase your shared pool size. You can also flush shared pool to avoid this error temporarily.


If the shared pool is out of memory, either use the dbms_shared_pool package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the INIT.ORA parameters "shared_pool_reserved_size" and "shared_pool_size". If the large pool is out of memory, increase the INIT.ORA parameter "large_pool_size".

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧