ITPub博客

首页 > 数据库 > Oracle > 如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target

如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target

原创 Oracle 作者:wisdomone1 时间:2015-09-20 16:50:12 0 删除 编辑

结论

1,memory_max_target及memory_target参数的配置,则会启用全自动内存管理功能
2,memory_target=sga_target+max(pga_aggregate_target+maximum pga allocated)
3,memory_target分配范围必须要在参数memory_max_target
4,memory_max_target参数分配原则,一要考虑数据库负载的持续变化发展以及物理内存的空间是否充足
5,sga_target及pga_aggregate_target若配置为0,则全自动内存管理,SGA及PGA组件分配完全由ORACLE根据业务负载分配,没有最小值的限制
  否则,若2参数为非0,则SGA及PGA分配不能少于指定的值
6,建议在生产环境采用第5步后者的分配方式,以防内存分配抖动大量出现,引发严重的性能问题
7,数据库启动可以采用SPFILE或者PFILE,二者调整参数稍有不同,一定要注意二者的区别
8,对于RAC数据库,若采用ALTER SYSTEM方式调整开启全自动内存管理方式,且是一个实例一个实例调整,一定要添加选项sid='sid值',否则会报错
   调整完当前节点,再调整其它节点  
9,本文测试环境为RAC 2节点11.2.0.3数据库,基于ASM存储的SPFILE,并在另一篇文章测试基于PFILE调整全自动内存管理的RAC数据库   

背景

  如果在启动oracle 11g数据库后,想由原来的SGA及PGA自动管理改为SGA及PGA全自动内存管理,需要作哪些工作,又要了解哪些参数呢?
与全自动内存管理的参数memory_max_size及memory_target的值如何设定呢?
  本文我们主要学习这些知识,供后期运维所需。




测试

1,查看SGA_TARGET的参数值
SQL> show parameter sga_target


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 556m


2,查看PGA参数值
SQL> show parameter pga_


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 187M


3,查看自数据库启动以来PGA分配过的最大值
SQL> select value from v$pgastat where name='maximum PGA allocated';


     VALUE
----------
 161836032




 SQL> select 161836032/1024/1024 mb from dual;


        MB
----------
154.338867


4,综上所述,从理论上来讲,memory_target=sga_taget + max(pga_aggregate_target + maximum PGA allocated)


   memory_target=556m+max(187m,154m)=556m+187m=743m


    注意:如果你物理内存充足,可用空间充足,可以把memory_target在上述计算的基础再增大一点


5,与全自动内存管理还有一个参数memory_max_size,又该如何设定呢?
    首先此参数配置有几个原则:
      1,此参数控制memory_target可以分配的最大值
      2,分配此参数值一定要考虑业务发展的需要,可以把此参数值在第4步计算的基础上加大一些
   所以,配置memory_max_target=800m


6,现在全自动内存管理的2个参数的值已经计算完毕,开始在数据库层面进行具体的调整,这里根据是否采用SPFILE或者PFILE,动作稍稍有所区别


7,先看如果数据库启动采用SPFILE
    ---即设定为第5步计算的值(若为RAC,添加选项sid)
    alter system set memory_max_target=800m  scope=spfile sid='*';


8,重启数据库实例
    shutdown immediate
    startup


9,动态调整memory_target及sga_target及pga_aggregate_target几个参数的值


 ---743m为第4步计算的值


 --- 对于当前操作的RAC数据库实例,一定要添加 sid='jingfa1',否则会报ORA-32018: parameter cannot be modified in memory on another instance
alter system set memory_target=743m;
alter system set sga_target=0;
alter system set pga_aggregate_target=0;        




注意:如果你配置sga_target及pga_aggregate_target为0,则完全由ORACLE动态根据数据库负载无限制调整sga及pga的大小(这种方式到时内存分配抖动过大,会引发严重的性能问题);
     但是,如果你配置sga_target及pga_aggregate_target为非0值,则为内存动态调整时,其为最小值,即不能少于这个值(建议在生产环境采用这种方式)




10,如果是RAC数据库,还要启动其它的节点
startup nomount


alter system set memory_target=743m sid='jingfa2';


alter system set sga_target=0 sid='jingfa2';


alter system set pga_aggregate_target=0 sid='jingfa2';


alter database mount;


alter database open;


个人简介


8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
服务过的客户:
中国电信
中国移动
中国联通
中国电通
国家电网
四川达州商业银行
湖南老百姓大药房
山西省公安厅
中国邮政
北京302医院     
河北廊坊新奥集团公司

 项目经验:
中国电信3G项目AAA系统数据库部署及优化
      中国联通4G数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg 
       贵州移动crm及客服数据库性能优化项目
       贵州移动crm及客服务数据库sql审核项目
       深圳穆迪软件有限公司数据库性能优化项目

联系方式:
手机:18201115468
qq   :   305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900    
itpub博客名称:wisdomone1    http://blog.itpub.net/9240380/


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1804586/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12009696