oracle10g sga自動管理amm(補充一)

wisdomone1發表於2015-09-21

背景

  在前面的文章,測式瞭如何配置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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章