<h2>
结论
</h2>
1,memory_max_target及memory_target参数的配置,则会启用全自动内存管理功能<br />
2,memory_target=sga_target+max(pga_aggregate_target+maximum pga allocated)<br />
3,memory_target分配范围必须要在参数memory_max_target<br />
4,memory_max_target参数分配原则,一要考虑数据库负载的持续变化发展以及物理内存的空间是否充足<br />
5,sga_target及pga_aggregate_target若配置为0,则全自动内存管理,SGA及PGA组件分配完全由ORACLE根据业务负载分配,没有最小值的限制<br />
否则,若2参数为非0,则SGA及PGA分配不能少于指定的值<br />
6,建议在生产环境采用第5步后者的分配方式,以防内存分配抖动大量出现,引发严重的性能问题<br />
7,数据库启动可以采用SPFILE或者PFILE,二者调整参数稍有不同,一定要注意二者的区别<br />
8,对于RAC数据库,若采用ALTER SYSTEM方式调整开启全自动内存管理方式,且是一个实例一个实例调整,一定要添加选项sid='sid值',否则会报错<br />
调整完当前节点,再调整其它节点 <br />
9,本文测试环境为RAC 2节点11.2.0.3数据库,基于ASM存储的SPFILE,并在另一篇文章测试基于PFILE调整全自动内存管理的RAC数据库 <br />
<h2>
背景
</h2>
如果在启动oracle 11g数据库后,想由原来的SGA及PGA自动管理改为SGA及PGA全自动内存管理,需要作哪些工作,又要了解哪些参数呢?<br />
与全自动内存管理的参数memory_max_size及memory_target的值如何设定呢?<br />
本文我们主要学习这些知识,供后期运维所需。<br />
<br />
<br />
<br />
<br />
<h2>
测试
</h2>
1,查看SGA_TARGET的参数值<br />
SQL> show parameter sga_target<br />
<br />
<br />
NAME TYPE VALUE<br />
------------------------------------ ----------- ------------------------------<br />
sga_target big integer 556m<br />
<br />
<br />
2,查看PGA参数值<br />
SQL> show parameter pga_<br />
<br />
<br />
NAME TYPE VALUE<br />
------------------------------------ ----------- ------------------------------<br />
pga_aggregate_target big integer 187M<br />
<br />
<br />
3,查看自数据库启动以来PGA分配过的最大值<br />
SQL> select value from v$pgastat where name='maximum PGA allocated';<br />
<br />
<br />
VALUE<br />
----------<br />
161836032<br />
<br />
<br />
<br />
<br />
SQL> select 161836032/1024/1024 mb from dual;<br />
<br />
<br />
MB<br />
----------<br />
154.338867<br />
<br />
<br />
4,综上所述,从理论上来讲,memory_target=sga_taget + max(pga_aggregate_target + maximum PGA allocated)<br />
<br />
<br />
memory_target=556m+max(187m,154m)=556m+187m=743m<br />
<br />
<br />
注意:如果你物理内存充足,可用空间充足,可以把memory_target在上述计算的基础再增大一点<br />
<br />
<br />
5,与全自动内存管理还有一个参数memory_max_size,又该如何设定呢?<br />
首先此参数配置有几个原则:<br />
1,此参数控制memory_target可以分配的最大值<br />
2,分配此参数值一定要考虑业务发展的需要,可以把此参数值在第4步计算的基础上加大一些<br />
所以,配置memory_max_target=800m<br />
<br />
<br />
6,现在全自动内存管理的2个参数的值已经计算完毕,开始在数据库层面进行具体的调整,这里根据是否采用SPFILE或者PFILE,动作稍稍有所区别<br />
<br />
<br />
7,先看如果数据库启动采用SPFILE<br />
---即设定为第5步计算的值(若为RAC,添加选项sid)<br />
alter system set memory_max_target=800m scope=spfile sid='*';<br />
<br />
<br />
8,重启数据库实例<br />
shutdown immediate<br />
startup<br />
<br />
<br />
9,动态调整memory_target及sga_target及pga_aggregate_target几个参数的值<br />
<br />
<br />
---743m为第4步计算的值<br />
<br />
<br />
--- 对于当前操作的RAC数据库实例,一定要添加 sid='jingfa1',否则会报ORA-32018: parameter cannot be modified in memory on another instance<br />
alter system set memory_target=743m;<br />
alter system set sga_target=0;<br />
alter system set pga_aggregate_target=0; <br />
<br />
<br />
<br />
<br />
注意:如果你配置sga_target及pga_aggregate_target为0,则完全由ORACLE动态根据数据库负载无限制调整sga及pga的大小(这种方式到时内存分配抖动过大,会引发严重的性能问题);<br />
但是,如果你配置sga_target及pga_aggregate_target为非0值,则为内存动态调整时,其为最小值,即不能少于这个值(建议在生产环境采用这种方式)<br />
<br />
<br />
<br />
<br />
10,如果是RAC数据库,还要启动其它的节点<br />
startup nomount<br />
<br />
<br />
alter system set memory_target=743m sid='jingfa2';<br />
<br />
<br />
alter system set sga_target=0 sid='jingfa2';<br />
<br />
<br />
alter system set pga_aggregate_target=0 sid='jingfa2';<br />
<br />
<br />
alter database mount;<br />
<br />
<br />
alter database open;<br />
<br />
<br />
<b style="color:#666666;font-family:宋体, Arial;line-height:26px;white-space:normal;">
<h2 style="margin:0px;padding:0px;">
<span style="text-indent:2em;">个人简介</span>
</h2>
<b style="text-indent:24px;"><br />
<div style="text-indent:2em;">
8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
</div>
<div style="text-indent:2em;">
</div>
<div style="text-indent:2em;">
服务过的客户:
</div>
<div style="text-indent:2em;">
中国电信
</div>
<div style="text-indent:2em;">
中国移动
</div>
<div style="text-indent:2em;">
中国联通
</div>
<div style="text-indent:2em;">
中国电通
</div>
<div style="text-indent:2em;">
国家电网
</div>
<div style="text-indent:2em;">
四川达州商业银行
</div>
<div style="text-indent:2em;">
湖南老百姓大药房
</div>
<div style="text-indent:2em;">
山西省公安厅
</div>
<div style="text-indent:2em;">
中国邮政
</div>
<div style="text-indent:2em;">
北京302医院
</div>
<div style="text-indent:2em;">
河北廊坊新奥集团公司
</div>
<div style="text-indent:2em;">
<br />
项目经验:
</div>
<div style="text-indent:2em;">
中国电信3G项目AAA系统数据库部署及优化<br />
中国联通4G数据库性能分析与优化
</div>
<div style="text-indent:2em;">
中国联通CRM数据库性能优化
</div>
<div style="text-indent:2em;">
中国移动10086电商平台数据库部署及优化
</div>
<div style="text-indent:2em;">
湖南老百姓大药房ERR数据库sql优化项目
</div>
<div style="text-indent:2em;">
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
</div>
<div style="text-indent:2em;">
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
</div>
<div style="text-indent:2em;">
北京高铁信号监控系统RAC数据库部署及优化
</div>
<div style="text-indent:2em;">
河南宇通客车数据库性能优化
</div>
<div style="text-indent:2em;">
中国电信电商平台核心采购模块表模型设计及优化
</div>
<div style="text-indent:2em;">
中国邮政储蓄系统数据库性能优化及sql优化
</div>
<div style="text-indent:2em;">
北京302医院数据库迁移实施
</div>
<div style="text-indent:2em;">
河北廊坊新奥data guard部署及优化
</div>
<div style="text-indent:2em;">
山西公安厅身份证审计数据库系统故障评估
</div>
<div style="text-indent:2em;">
国家电网上海灾备项目4 node rac+adg <br />
贵州移动crm及客服数据库性能优化项目<br />
贵州移动crm及客服务数据库sql审核项目<br />
深圳穆迪软件有限公司数据库性能优化项目
</div>
<div style="text-indent:2em;">
<br />
联系方式:
</div>
<div style="text-indent:2em;">
手机:18201115468
</div>
<div style="text-indent:2em;">
qq : 305076427
</div>
<div style="text-indent:2em;">
qq微博: wisdomone1
</div>
<div style="text-indent:2em;">
新浪微博:wisdomone9
</div>
<div style="text-indent:2em;">
qq群:275813900
</div>
<div style="text-indent:2em;">
itpub博客名称:wisdomone1 <a href="http://blog.itpub.net/9240380/" style="text-decoration:none;color:#565656;">http://blog.itpub.net/9240380/</a>
</div>
</b></b><br />
<br />
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24222399/viewspace-2145363/
,如需转载,请注明出处,否则将追究法律责任。