美创科技技术社区

注册

 

发新话题 回复该主题

Oracle 10.2.0.3 and ora-4031 [复制链接]

1#

现象:

查询语句错误:ora-4031,无法分配更多的共享内存。

诊断:

检查v$sgastat,发现shared pool的free memory还有1G多,出现ora-4031显然是因为内存碎片过多。相关的bug: 6333663。但本案例并不运行在shared server环境中。联系到以前处理案例,似乎oracle 10.2在增加了自动处理内存之后,对于手工管理的shared pool处理能力在减弱。

处理:

降低db cache size,增加shared pool size以暂时使系统度过,并且在适当的时候flush shared pool。考虑到该系统基本在2~3天左右会达到SHARED POOL慢,增加了定期清理脚本以避免再次发生。

从现象看,应该为Oracle bug,但从根本来看还是应用程序没有很好的利用Oracle bind value处理导致。

分享 转发
TOP
发新话题 回复该主题