如何啟用oracle11g的全自動記憶體管理以及計算memory_max_target及memory_target
結論
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資料庫效能分析與最佳化
中國聯通4G資料庫效能分析與最佳化
中國聯通CRM資料庫效能最佳化
中國移動10086電商平臺資料庫部署及最佳化
湖南老百姓大藥房ERR資料庫sql最佳化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及最佳化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及最佳化
北京高鐵訊號監控系統RAC資料庫部署及最佳化
河南宇通客車資料庫效能最佳化
中國電信電商平臺核心採購模組表模型設計及最佳化
中國郵政儲蓄系統資料庫效能最佳化及sql最佳化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及最佳化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg
貴州移動crm及客服資料庫效能最佳化專案
貴州移動crm及客服務資料庫sql稽核專案
深圳穆迪軟體有限公司資料庫效能最佳化專案
貴州移動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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何基於pfile啟動oracle11g全自動記憶體管理與memory_max_target及memory_targetOracle記憶體
- 關於oracle11G的自動記憶體管理MEMORY_TARGET和MEMORY_MAX_TARGETOracle記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 開啟oracle記憶體自動化管理Oracle記憶體
- 自動記憶體管理記憶體
- oracle的自動記憶體管理Oracle記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- 記憶體自動管理與手動管理記憶體
- Oracle 記憶體自動管理--關閉自動管理Oracle記憶體
- Oracle11g自動記憶體管理(AMM)相關的初始化引數Oracle記憶體
- 如何避免JavaScript的記憶體洩露及記憶體管理技巧JavaScript記憶體洩露
- [轉帖]Solaris記憶體管理以及判定記憶體是否夠用的方法記憶體
- 將手動記憶體管理變為自動管理記憶體 ORACLE 11G記憶體Oracle
- Java應用程式中的記憶體洩漏及記憶體管理Java記憶體
- JVM學習-自動記憶體管理JVM記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- 計算機記憶體管理介紹計算機記憶體
- node計算記憶體佔用記憶體
- JVM 自動記憶體管理機制及 GC 演算法JVM記憶體GC演算法
- 記憶體的計算記憶體
- JVM學習筆記——自動記憶體管理JVM筆記記憶體
- ORACLE11G記憶體管理引數Oracle記憶體
- 高階記憶體管理程式設計指南-實用的記憶管理記憶體程式設計
- oracle 11g自動記憶體管理Oracle記憶體
- JVM自動記憶體管理機制 二JVM記憶體
- MySQL記憶體佔用計算公式MySql記憶體公式
- AIX程式記憶體佔用數的計算AI記憶體
- javascript的記憶體管理以及3種常見的記憶體洩漏JavaScript記憶體
- oracle 10g 自動共享記憶體管理Oracle 10g記憶體
- 淺談深度學習:如何計算模型以及中間變數的視訊記憶體佔用大小深度學習模型變數記憶體
- win10系統快速啟動佔用記憶體如何解決_win10快速啟動佔用記憶體高的解決教程Win10記憶體
- Linux程式記憶體佔用數的計算Linux記憶體
- 動態記憶體管理記憶體
- ARC記憶體管理以及迴圈引用記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- Unix/Linux 系統自動化管理: 記憶體管理篇Linux記憶體
- 如何計算自動管理的UNDO表空間大小