oracle的内存不释放问题

3g内存的机器 上面跑着5个oracle实例 刚开始的时候 内存使用量40%多 我要是两天不管他(这两天没人用) 第三天早上内存就飙到99% 并且不能远程 过一会 死机;都说oracle内存可以自动释放,我这直接崩溃了。怎么让他自动释放内存啊,或者说如何设置,才不会出现上述情况

简单点,加主机吧。
你3个g的内存,本机开机怎么也得几百兆。
最后算算顶多每个实例500m。
刚开机的时候当然使用率很少,但是随着用户的增多,oracle数据库内部的内存需要量是很大的,比如说db buffer 需要缓存数据。这个是大头。
还有就是用户数增多,使用率增大,pga占用也是很大的,而且设定的oracle内存limit值,也不是绝对的,就算超过了,它也会自行增大。
一旦某个时间点,5个实例内存需求量增多,机器肯定塌。
除非你不停的
alter system flush buffer_cache ;

并且不停的kill session。
不过这样,你的数据库就不可用了,没有一点意义。追问

你说对了,有4个实例是500多m,但是周六周日没人用的时候 为什么不释放内存呢;周一来的时候已经99%,过会就死机了。
我已经把sga调小了 每个300,现在好很多了,就是不明白为什么oracle不能自动释放内存

追答

database buffer cache 应该是不会自动释放的。
整个周六周日,应该是数据库在收集表的统计信息的一些维护操作,所以需要内存。
这个不好判断,最好看一下那两天的awr报告。

温馨提示:答案为网友推荐,仅供参考
相似回答