如何啟用oracle11g的全自動記憶體管理以及計算memory_max_target及memory_target

wisdomone1發表於2015-09-20

結論

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章