Oracle内存调整办法

手动修改参数:

  设置前:

     

    

  设置过程: 

     1.cmd sqlplus system账户登录

    2.show parameter sga; --显示内存分配情况

    3.alter system set memory_target = 1200M scope=spfile;

    4.alter system set sga_max_size=1000m scope=spfile; --修改占用内存的大小

    5.停止oracle服务 shutdown normal;

    6.重启oracle服务 startup;  

    启动成功说明设置Ok。

  设置后:

    

      

   注意:  

  oracle启动过程比较慢,所以当startup或者重新开机时请耐心等待几分钟,建议5分钟(视服务器环境而定)

  df -h /dev/shm/ 不够时,oracle也会起不来

  sga_target < memory_target<memory_max_target

  memory_target和物理内存关系为  2*memory_target<=物理内存,参考如下:

  2g物理内存对应1200M memeory_target,sga_max_size=1000M(已测过)
  4g物理内存对应2000M memeory_target,sga_max_size=1800M(已测过)

  解释: /dev/shm/ 是一个设备文件,不在物理硬盘而在内存里面,/dev/shm实际就是基于内存的文件系统(tmpfs),tmpfs内存应为物理内存一半;

      以上述第二条对应关系为例,metory_target设置为2000M时+tmpfs1.9G,加起来接近4G,因此物理内存设置4G时为最小内存;

      如果服务器安装的有其他软件根据其软件内存占用情况请合理增加物理内存;

      /dev/shm/截图如下:

      

 总结

  memeory_target,sga_max_size,物理内存设置不合理,oracle会起不来。

  oracle其他启动参数 没有十足把握切勿修改,尤其oracle启动配置文件切勿随意修改,否则非常尴尬,你懂得...

 参数:

  MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。
  它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0
 
  MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
  使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。
 
  SGA_TARGET、PGA_AGGREGATE_TARGET都有设置为0,才能开启自动内存管理
posted @ 2018-12-21 15:56  李文学  阅读(5004)  评论(0编辑  收藏  举报