ITPub博客

首页 > 数据库 > Oracle > oracle10g sga自动管理amm(补充一)

oracle10g sga自动管理amm(补充一)

原创 Oracle 作者:wisdomone1 时间:2015-09-21 14:41:52 0 删除 编辑

背景

  在前面的文章,测式了如何配置sga的自动内存管理功能,本文继续学习与此相关的知识;


结论

1,sga_target自动调整涉及到一些概念,请参考测试第1
2,sga_target可以收缩,但与sga采用自动管理与半自动管理,其自动调整组件的表现行为有所不同;前者
  各自动调整子组件会相应收缩,而后者则收缩不能小于各子组件指定的最小大小
3,sga收缩是针对其自动调整的子组件,而固定大小的子组件,其大小是一直不变的  


测试



1,sga_target它是可以动态调整的,关于它的动态调整涉及到一些知识:
  sga_target只要它的值不超过出sga_max_size,可以动态伸缩扩展;如果你收缩了sga_target,数据库会自动去收缩其sga可以动态调整子组件的内存
  sga_target的值受几方面的影响,包含自动调整的子组件,固定大小的子组件,以及CPU的个数


  如果你为SGA动态调整子组件指定了最小大小,则你收综SGA_TARGET则不能小于这些子组件最小大小之和


2,测试下上述的知识,便于加深理解


3,先看SGA全自动内存管理方式,如果你收缩SGA_TARGET各子组件的变化情况


收缩前的SGA及各组件的大小
SQL> show parameter sga_


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 1104M
sga_target                           big integer 1008M
SQL> show parameter db_cache


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_advice                      string      OFF
db_cache_size                        big integer 0
SQL> show parameter _pool_size


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size             string
java_pool_size                       big integer 0
large_pool_size                      big integer 0
olap_page_pool_size                  big integer 0
shared_pool_size                     big integer 0
streams_pool_size                    big integer 0




SQL> select name,bytes/1024/1024 as mb,RESIZEABLE as mb from  v$sgainfo;


NAME                                     MB MB
-------------------------------- ---------- ---
Fixed SGA Size                   1.99871063 No
Redo Buffers                             14 No
Buffer Cache Size                       768 Yes
Shared Pool Size                        112 Yes
Large Pool Size                          32 Yes
Java Pool Size                           16 Yes
Streams Pool Size                        64 Yes
Granule Size                             16 No
Maximum SGA Size                       1104 No
Startup overhead in Shared Pool          48 No
Free SGA Memory Available                96


11 rows selected.


收缩SGA_TARGET为800M
SQL> alter system set sga_target=800m;


System altered.


SQL> show parameter sga_


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 1104M
sga_target                           big integer 800M


SQL> show parameter _pool_size


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size             string
java_pool_size                       big integer 0
large_pool_size                      big integer 0
olap_page_pool_size                  big integer 0
shared_pool_size                     big integer 0
streams_pool_size                    big integer 0
SQL> show parameter db_cache


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_advice                      string      OFF
db_cache_size                        big integer 0




SQL> select name,bytes/1024/1024 as mb,RESIZEABLE as mb from  v$sgainfo;


NAME                                     MB MB
-------------------------------- ---------- ---
Fixed SGA Size                   1.99871063 No
Redo Buffers                             14 No
Buffer Cache Size                       560 Yes  --可见收缩SGA_TARGET后动态调整子组件会相应进行收缩
Shared Pool Size                        112 Yes
Large Pool Size                          32 Yes
Java Pool Size                           16 Yes
Streams Pool Size                        64 Yes
Granule Size                             16 No
Maximum SGA Size                       1104 No
Startup overhead in Shared Pool          48 No
Free SGA Memory Available               304


11 rows selected.




4,再看看如果你指定了SGA动态调整子组件最小值,如果你收缩SGA_TARGET又会如何?


---调整前
SQL> show parameter sga_target


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 1008M
SQL> show parameter db_cache


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_advice                      string      OFF
db_cache_size                        big integer 512M
SQL> show parameter _pool_size


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size             string
java_pool_size                       big integer 0
large_pool_size                      big integer 0
olap_page_pool_size                  big integer 0
shared_pool_size                     big integer 352M
streams_pool_size                    big integer 0
SQL> select name,bytes/1024/1024 as mb,RESIZEABLE as mb from  v$sgainfo;


NAME                                     MB MB
-------------------------------- ---------- ---
Fixed SGA Size                   1.99871063 No
Redo Buffers                             14 No
Buffer Cache Size                       528 Yes
Shared Pool Size                        352 Yes
Large Pool Size                          32 Yes
Java Pool Size                           16 Yes
Streams Pool Size                        64 Yes
Granule Size                             16 No
Maximum SGA Size                       1104 No
Startup overhead in Shared Pool          48 No
Free SGA Memory Available                96


11 rows selected.


SQL> 


调整后
--根据v$sgainfo可以计算下收缩SGA_TARGET可以最小到哪个值
SQL> select 512+352+2+14+48 as sga_target_actual from dual;


SGA_TARGET_ACTUAL
-----------------
              928


--可见928M还不行,说明还有其它的子组件要占用SGA的大小
SQL> alter system set sga_target=928m;
alter system set sga_target=928m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00827: could not shrink sga_target to specified value


---虽然指定sga_target为930m,但因为granule,会四舍五入为944m
SQL> alter system set sga_target=930m;


System altered.


SQL> show parameter sga_tar


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 944M
SQL> 


--那么这个sga_target=944m又是如何计算来的呢
SQL> select 2+14+512+352+16+16+32 as mb from dual;


2+14+512+352+16+16+32
---------------------
                  944


--944m sga_target源自于下述的数据,可见大池,流池,JAVA池等实际使用不可能为0,虽然你指定为0
SQL> select name,bytes/1024/1024 as mb,RESIZEABLE as mb from  v$sgainfo;


NAME                                     MB MB
-------------------------------- ---------- ---
Fixed SGA Size                   1.99871063 No
Redo Buffers                             14 No
Buffer Cache Size                       512 Yes  --经过收缩后,db_cache_size已经收缩为最小指定的值
Shared Pool Size                        352 Yes  --同上
Large Pool Size                          16 Yes
Java Pool Size                           16 Yes
Streams Pool Size                        32 Yes
Granule Size                             16 No
Maximum SGA Size                       1104 No
Startup overhead in Shared Pool          48 No --包含在shared_pool_size中
Free SGA Memory Available               160


11 rows selected.


个人简介


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-1805197/,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    11977194