您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > Oracle

Oracle设置“服务”占用,分配内存限制

时间:11-21来源:作者:点击数:

Oracle版本:Oracle12C

问题现象

  1. 开启Oracle的服务后,占有极大的内存,如下图:

原因分析

  1. 理论上,Oracle自身服务需要占用内存是正常情况。在不使用的时候,可以通过关闭服务来解决。
  2. 如果需要Oracle长时间开启,可以通过减少sga的内存占用,来解决这一问题。但通过这一手段,必然会降低Oracle使用性能!!

解析:

  1. 处理步骤
    1. 用dba身份进入oracle,可以使用sqlplus修改(sqlplus 账号/密码  as sysdba);
      1. 若使用PL/SQL,可以在Command Window执行;
    2. 在cmd中输入:show parameter sga; --显示内存分配情况;要修改的就是红框部分;
  1. 使用:alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小
  1. 配置完成后,出现“系统更改”字样,表示修改完成,重启Oracle服务即可;
  2. 这种方式,是直接修改sga的内存占用。如果对Oracle内存不太了解的话,这里的修改要非常谨慎!!!
    1. 所以,要使用Oracle的自动分配内存机制!
    2. 继续保持Oracle的登陆状态,在cmd输入:show parameter memory ---查看memory占用的内存
  1. Memory是Oracle的内存自动管理阀门。通过修改该属性,可以降低Oracle内存的总占用量,之后Oracle会根据此值,自动分配其他配置的所需内存!
    1. 修改这个值之后,还可以修改sga_max,要让sga的值小于memory的值。但这条不是必须的。一般只要修改memory的值即可!
  2. Cmd操作:alter system set memory_max_target=2000m scope=spfile;
    1. 修改完毕后,重启服务;
    2. 查看Oracle所占内存,已经得到缓解,同时,如果再次通过show parameter sga;命令,查看sga的值,会发现已经自动降低。这就是memory的功劳了。

效果:

附录:

  1. 在此例里面,我将memory的值设定在500M
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:很抱歉没有了 下一篇:Oracle11g的ORA-28002错误
推荐内容
相关内容
栏目更新
栏目热门