紧急求助:ora-04031:unable to allocate 27996 bytes of share memory 我用的是10G
解决方案 »
- 求高手指点,处理数据库记录乱码问题
- 请教一个 database link的问题,我的操作错在哪?
- oracle EBS 安装最后验证失败
- update 关联表 更新
- AIX下怎么打开Oracle的Enterprise Manager Console啊?
- 急!oracle10g 的dump能在oracle9i上用吗?
- 求助 oracle中的数据如何导入sql server2000中?
- 如何凭空返回一个多行结果集,每行为你指定的数值?
- Oracle 8.1.6: ORA-12571: TNS:packet writer failure
- weblogic 问题导致交易延时10多秒,并且导致不能打印日志,重启服务后就正常了
- 关于oracle连接数释放问题
- 共享我的ORACLE数据在LINUX下的远程备份解决方案!!
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".
同楼上的结论, 可能是你的SGA碎片化严重,最有效的解决办法应该是修改参数, 不能重启数据库的话就flush sga 了。
或者通过如下sql确认:
select pool,sum(bytes) from v$sgastat group by pool;
如果设置正确,不排除遇到oracle bug的可能。
只需设置:
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。最后重启实例后生效。
FLUSH SHARED_POOL;试一试这个