如何基於pfile啟動oracle11g全自動記憶體管理與memory_max_target及memory_target
背景
oracle 11g啟用全自動記憶體管理,主要是和引數memory_max_target及memory_target有關;在之前文章測試了基於SPFILE如何啟動全自動記憶體管理功能,本文測試基於PFILE如何啟用全自動記憶體管理,到底涉及哪些操作,進而加深瞭解各種環境,提升應對技能。
本文測試環境為基於asm的ORACLE 11.2.0.3 rac,雙節點,現在我們步入正題,開始測試。
結論
1,oracle rac可以採用pfile啟動2,pfile可以基於原生的spfile生成
3,如果啟動pfile僅含引數memory_target,而無memory_max_target,啟動庫後後者引數值=前面引數的值
4,如果啟動PFILE僅含引數memory_max_target,而無memory_target,啟動庫後memory_target=0,可動態調整,只要其值不大於前者引數值
5,一定要注意如果基於SPFILE生成PFILE,如要要調整MEMORY相關引數,一定要確保memory相關的引數保持一致,否則可能會出你期望不到的結果
6,如果你打算RAC資料庫或單例項資料庫採用PFILE,確保各個節點PFILE檔案在相同目錄,可採用SCP把一個節點傳遞到其它RAC節點,便於運維
測試
1,採用ASM儲存SPFILE
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/jingfa/spfilejingfa.ora
2,備份SPFILE,防止中途操作出現故障,便於恢復資料庫,切記,一定要養成操作前備份的習慣,至關重要,且每一步操作,一實要記錄下來,不可遺漏,否則可能會出大麻煩
--在節點1操作即可
SQL> create pfile='/home/oracle/spfilejingfa.ora_20150920bak' from spfile;
File created.
3,關於memory_max_target及memory_target如何配置,請參考我之前的文章
http://blog.itpub.net/9240380/viewspace-1804586/
4,在節點1基於ASM SPFILE生成另一個pfile,在這個基礎上啟用全自動記憶體管理
SQL> create pfile='/home/oracle/jingfa_memory.ora' from spfile;
File created.
5,在節點1基於第4步生成的PFILE檔案新增如下引數
[oracle@jingfa1 ~]$ tail -5f /home/oracle/jingfa_memory.ora
#zxy added
memory_max_target=800m
memory_target=743m
sga_target=0
pga_aggregate_target=0
6,在節點1以第5步生成的PFILE重啟節點1例項
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
7,在節點1確認全自動記憶體管理配置正確
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 800M
sga_target big integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
8,在節點1把上述的PFILE以SCP付遞到節點2相同的目錄
[oracle@jingfa1 ~]$ scp jingfa_memory.ora oracle@jingfa2:/home/oracle
oracle@jingfa2's password:
jingfa_memory.ora 100% 1864 1.8KB/s 00:00
[oracle@jingfa1 ~]$
9,在節點2重啟資料庫例項
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
10,在節點2確認全自動記憶體管理配置正確
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL> show parameter sga_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 800M
sga_target big integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
11,在2個節點確認SPFILE及PFILE的資訊,在使用PFILE情況下,2引數皆無值
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
12,如果在PFILE沒有配置memory_max_target僅配置了memory_target,會如何呢?
13,在節點1調整pfile,移除memory_max_target,僅配置memory_target
[oracle@jingfa1 ~]$ tail -5f jingfa_memory.ora
#zxy added
#memory_max_target=800m
memory_target=743m
sga_target=0
pga_aggregate_target=0
14,重啟節點1,發現memory_max_target雖然沒有在PFILE中配置,僅大於memory_target,即仍舊保持和之前的SPFILE配置一樣(因為我之前SPFILE是顯式配置了MEMORY_MAX_TARGET引數)
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 583011712 bytes
Database Buffers 247463936 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 744M
shared_memory_address integer 0
SQL>
15,節點1產生上述問題原因很簡單,因為我PFILE是基於SPFILE生成的,所以PFILE殘留有memory_max_target,從PFILE移除此引數
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
*.memory_max_target=838860800
*.memory_target=779091968
jingfa1.memory_target=780140544
jingfa2.memory_target=780140544
#memory_max_target=800m
memory_target=743m
移除節點1PFILE檔案的memory_max_target引數
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
#*.memory_max_target=838860800
*.memory_target=779091968
jingfa1.memory_target=780140544
jingfa2.memory_target=780140544
#memory_max_target=800m
memory_target=743m
16,重啟節點1,可見若僅配置memory_target,不配置memory_max_target,則以PFILE啟動資料庫後,memory_max_target=memory_target
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 776646656 bytes
Fixed Size 2232392 bytes
Variable Size 524292024 bytes
Database Buffers 247463936 bytes
Redo Buffers 2658304 bytes
Database mounted.
Database opened.
SQL>
SQL>
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 744M
memory_target big integer 744M
shared_memory_address integer 0
17,還有一種情況,如果不配置memory_target,僅配置memory_max_target,又會如何呢
18,在節點1移除引數memory_target
[oracle@jingfa1 ~]$ more jingfa_memory.ora|grep -i --color memory
#*.memory_max_target=838860800
#*.memory_target=779091968
#jingfa1.memory_target=780140544
#jingfa2.memory_target=780140544
memory_max_target=800m
#memory_target=743m
19,重啟節點1,可見僅配置引數memory_max_target,memory_target為0,可以在啟動庫後動態調整,只要不大於前者引數的值即可
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup pfile='/home/oracle/jingfa_memory.ora'
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2232960 bytes
Variable Size 603983232 bytes
Database Buffers 226492416 bytes
Redo Buffers 2396160 bytes
Database mounted.
Database opened.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 0
shared_memory_address integer 0
SQL> alter system set memory_target=700m sid='jingfa1';
System altered.
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 800M
memory_target big integer 700M
shared_memory_address integer 0
SQL>
個人簡介
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-1804611/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何啟用oracle11g的全自動記憶體管理以及計算memory_max_target及memory_targetOracle記憶體
- 關於oracle11G的自動記憶體管理MEMORY_TARGET和MEMORY_MAX_TARGETOracle記憶體
- 記憶體自動管理與手動管理記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 自動記憶體管理記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 開啟oracle記憶體自動化管理Oracle記憶體
- Oracle 記憶體自動管理--關閉自動管理Oracle記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- oracle的自動記憶體管理Oracle記憶體
- 將手動記憶體管理變為自動管理記憶體 ORACLE 11G記憶體Oracle
- JVM學習-自動記憶體管理JVM記憶體
- 解析Java物件引用與JVM自動記憶體管理(轉)Java物件JVM記憶體
- JVM 自動記憶體管理機制及 GC 演算法JVM記憶體GC演算法
- JVM學習筆記——自動記憶體管理JVM筆記記憶體
- oracle 11g自動記憶體管理Oracle記憶體
- JVM自動記憶體管理機制 二JVM記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- Oracle11g自動記憶體管理(AMM)相關的初始化引數Oracle記憶體
- 動態記憶體管理記憶體
- oracle 10g 自動共享記憶體管理Oracle 10g記憶體
- oracle實驗記錄 (PFILE 啟動SPFILE)Oracle
- Redis4.0如何自動清理記憶體碎片Redis記憶體
- ORACLE AMM 、ASMM 、自動記憶體管理(官方手冊)OracleASM記憶體
- oracle 11G 自動記憶體管理設定Oracle記憶體
- Oracle9i 自動管理PGA記憶體(zt)Oracle記憶體
- 10g、11g記憶體自動管理記憶體
- oracle 11g 自動記憶體管理(其三)Oracle記憶體
- golang手動管理記憶體Golang記憶體
- Unix/Linux 系統自動化管理: 記憶體管理篇Linux記憶體
- ASMM (Auto Shared Memory Manangement) 自動共享記憶體管理ASMNaN記憶體
- 如何在pfile中引用spfile來啟動oracleOracle
- C++動態記憶體管理與原始碼剖析C++記憶體原始碼
- c++動態記憶體管理與智慧指標C++記憶體指標
- 電腦自啟動軟體管理
- 如何避免JavaScript的記憶體洩露及記憶體管理技巧JavaScript記憶體洩露
- ORACLE11G記憶體管理引數Oracle記憶體
- ORA-00845 : MEMORY_TARGET not supported on this system(調大資料庫記憶體無法啟動)大資料資料庫記憶體