您的位置:首页 > 数据库 > Oracle

Oracle设置“服务”占用内存

2017-01-14 10:34 274 查看
目录:

版本1

Oracle12C

版本2

 

版本3

 

关键字

Oracle,服务,内存

 

问题现象
开启Oracle的服务后,占有极大的内存,如下图:



原因分析
理论上,Oracle自身服务需要占用内存是正常情况。在不使用的时候,可以通过关闭服务来解决。



如果需要Oracle长时间开启,可以通过减少sga的内存占用,来解决这一问题。但通过这一手段,必然会降低Oracle使用性能!!

处理步骤
用dba身份进入oracle,可以使用sqlplus修改(sqlplus 账号/密码  as sysdba);
若使用PL/SQL,可以在Command Window执行;

 在cmd中输入:show parameter sga; --显示内存分配情况;要修改的就是红框部分;

使用:alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小
配置完成后,出现“系统更改”字样,表示修改完成,重启Oracle服务即可;
这种方式,是直接修改sga的内存占用。如果对Oracle内存不太了解的话,这里的修改要非常谨慎!!!
所以,要使用Oracle的自动分配内存机制!
继续保持Oracle的登陆状态,在cmd输入:show parameter memory ---查看memory占用的内存



Memory是Oracle的内存自动管理阀门。通过修改该属性,可以降低Oracle内存的总占用量,之后Oracle会根据此值,自动分配其他配置的所需内存!
修改这个值之后,还可以修改sga_max,要让sga的值小于memory的值。但这条不是必须的。一般只要修改memory的值即可!

Cmd操作:alter system set memory_target=占用内存数值 scope=spfile;
修改完毕后,重启服务;
查看Oracle所占内存,已经得到缓解,同时,如果再次通过show parameter sga;命令,查看sga的值,会发现已经自动降低。这就是memory的功劳了。

效果
                      


附录
在此例里面,我将memory的值设定在500M
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Oracle 异常