【例項】之memory_target、sga_target,pga_aggregate_target關係
自動記憶體管理(Automatic Memory Management)是11G中推出的新功能,10G中只有自動SGA管理。啟用了AMM只需設定記憶體的大小,就可以自動的在SGA和PGA之間分配記憶體,省去了管理設定SGA和PGA的麻煩。
MEMORY_TARGET--作業系統的角度上 Oracle 所能使用的最大記憶體值。動態引數
MEMORY_MAX_TARGET--MEMORY_TARGET所能設定的最大值。非動態可調。
注意:
如果使用的是 pfile,設定了 MEMORY_TARGET 而沒有指定 MEMORY_MAX_TARGET 的值,則例項啟動後 MEMORY_MAX_TARGET 的值與 MEMORY_TARGET 相等。如果 pfile 中指定了 MEMORY_MAX_TARGET 而沒有指定 MEMORY_TARGET ,例項啟動後 MEMORY_TARGET 為 0 。
一:自動記憶體管理(AMM)
預設安裝的例項即是 AMM 方式。如下
SQL> show parameters target
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 1216M
memory_target big integer 1216M
pga_aggregate_target big integer 0
sga_target big integer 0
要注意到 SGA_TARGET 和 都為 0 。
二:自動共享記憶體管理(Automatic Shared Memory Management, ASMM)
這是 10g 引入的管理方式,要使用這種方式,需要設定初始化引數 MEMORY_TARGET=0 ,然後顯式的指定 SGA_TARGET 的值。
SQL> alter system set sga_target=1024m scope=both;
alter system set sga_target=1024m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00839: SGA_TARGET cannot be modified to the specified value
SQL> alter system set memory_target=0 scope=both;
System altered.
SQL> alter system set sga_target=1024m scope=both;
System altered.
SQL>
這兩個引數的修改是有嚴格順序的,如果不遵守倒也沒問題--Oracle 會報告錯誤。
三:手工共享記憶體管理
這個又更加原始了一些。因為原始,所以新的初始化引數 SGA_TARGET 與 MEMORY_TARGET 都要設定為 0. 然後手工設定 share_pool_size 、db_cache_size 等 sga 引數。要注意 RESULT_CACHE_SIZE 引數是 11g 新引入的,用來快取 SQL 結果。
四.自動 PGA 記憶體管理
如果使用 AMM,則對 PGA 不用操心。如果要做到精細控制而切換到自動 PGA 記憶體管理模式,需要設定WORKAREA_SIZE_POLICY = AUTO(預設即為 AUTO),然後需要指定 PGA_AGGREGATE_TARGET 的值。如需要精確控制PGA,則 WORKAREA_SIZE_POLICY = MANUAL
五.手動 PGA 管理
前提是 WORKAREA_SIZE_POLICY = manual ,然後分別指定 SORT_AREA_SIZE 等 PGA 相關的引數。估計現在沒有人幹這個吃力不討好的事情了。這個模式大可以忽略。
六.AMM 的限制
如果初始化引數 LOCK_SGA = true(預設false) ,則 AMM 是不可用的。
下面來看看在11g 中Memory_target 設定和不設定對SGA/PGA 的影響:
如果Memory_target 設定為非0 值
1、sga_target 和 pga_aggregate_target 已經設定大小
Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致
2、sga_target 設定大小, pga_aggregate_target 沒有設定大小
pga_aggregate_target初始化值=memory_target-sga_target
3、sga_target 沒有設定大小, pga_aggregate_target 設定大小
sga_target 初始化值=memory_target-pga_aggregate_target
4、sga_target 和 pga_aggregate_target 都沒有設定大小
兩個值沒有最小值和預設值,Oracle 將根據資料庫執行狀況進行分配大小,但在資料庫啟動是會有一個固定比例來分配:
sga_target =memory_target *60%
pga_aggregate_target=memory_target *40%
如果Memory_target 設定為0
11g 中預設為0 則初始狀態下取消了Memory_target 的作用,完全和10g 在記憶體管理上一致,完全向下相容。
1、SGA_TARGET設定值
自動調節SGA 中的shared pool,buffer cache,redo log buffer,java pool,larger pool等記憶體空間的大小。PGA 則依賴pga_aggregate_target 的大小。
2、SGA_target 和PGA_AGGREGATE_TARGET 都沒有設定
SGA 中的各元件大小都要明確設定,不能自動調整各元件大小。PGA不能自動增長和收縮
3: MEMORY_MAX_TARGET 設定而MEMORY_TARGET =0 這種情況先和10g 一樣。
實驗:關閉記憶體自動管理,設定SGA,PGA分別自動管理,SGA=500,PGA=200
[root@hong ~]# su - oracle
[oracle@hong ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Sep 15 02:39:35 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 939495424 bytes
Fixed Size 2258840 bytes
Variable Size 595593320 bytes
Database Buffers 335544320 bytes
Redo Buffers 6098944 bytes
Database mounted.
Database opened.
SQL> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0
SQL> alter system set sga_target=500M scope=spfile;
System altered.
SQL> alter system set pga_aggregate_target=200M scope=spfile;
System altered.
SQL> alter system set memory_target=0 scope=spfile;
System altered.
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 16
pga_aggregate_target big integer 200M
sga_target big integer 500M
((((((上述三個引數sga_target,pga_aggregate_target,memory_target,相互影響他們的引數值,所以更改此類引數需加scope=spfile,不加預設scope=both,但是檢視引數值時並未生效;啟動記憶體SGA,PGA分別自動管理,順序為:alter system set sga_target=500m scope=spfile;alter system set pga_aggregate_target=200m scope=spfile; alter system set memory_target=0 scope=spfile;)))))
——重置記憶體自動管理memory_target:
SQL> alter system set memory_target=900M scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 939495424 bytes
Fixed Size 2258840 bytes
Variable Size 671090792 bytes
Database Buffers 260046848 bytes
Redo Buffers 6098944 bytes
Database mounted.
Database opened.
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 900M
memory_target big integer 900M
parallel_servers_target integer 16
pga_aggregate_target big integer 200M
sga_target big integer 500M
SQL> alter system set pga_aggregate_target=175M;
System altered.
SQL> alter system set sga_target=300M;
System altered.
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 900M
memory_target big integer 900M
parallel_servers_target integer 16
pga_aggregate_target big integer 175M
sga_target big integer 300M
SQL>
(記憶體自動管理生效,只要memory_target有值就以它為準)
參考網上資料,特此感謝!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2126700/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- memory_max_target,memory_target,pga_aggregate_target,sga_target
- SGA PGA MEMORY_TARGET 關係
- 探討PostgreSQL例項中資料庫之間的關係SQL資料庫
- 關於memory_max_target,memory_target,sga_max_size,sga_target
- 前端建構函式、原型、例項物件之間的關係前端函式原型物件
- 一張圖說明 函式, 例項(物件), 原型之間的關係函式物件原型
- memory_target、sga_target、pga_target的設定
- Granules of pga_aggregate_target 494 cannot be more than memory_target (497)
- Mongoose使用population建立關係連結例項說明Go
- Oracle - 資料庫的例項、表空間、使用者、表之間關係Oracle資料庫
- jquery實現的人物關係圖效果程式碼例項jQuery
- Eloquent 關係圖例(譯)
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-關於例項關閉Oracle
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- 改sga_target的注意事項
- 11g ASM例項記憶體大小與diskgroup大小的關係ASM記憶體
- 例項,資料庫,資料字典與資料庫建立的關係資料庫
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-關於例項啟動Oracle
- Oracle 10G RAC中去除asm例項與vip的依賴關係Oracle 10gASM
- 單例與單例項之爭單例
- 對ES6中類class以及例項物件、原型物件、原型鏈之間關係的詳細總結物件原型
- 類之間的關係
- Oracle EBS中分類賬和法人實體 的關係(有sql語句例項)OracleSQL
- SGA中各池記憶體分配顆粒大小與SGA_TARGET引數的關係記憶體
- canvas 例項之鬧鐘Canvas
- 【例項】之ckpt機制
- ASM之建立ASM例項ASM
- oracle 11G引數檔案之伺服器引數檔案(spfile)與例項啟動的關係Oracle伺服器
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- tep環境變數、fixtures、用例三者之間的關係變數
- 搜尋框關鍵字智慧匹配例項程式碼例項
- 2 Day DBA-管理Oracle例項-關閉和啟動Oracle例項-使用OEMDC關閉和啟動Oracle例項Oracle
- 例項解釋NLLLoss損失函式與CrossEntropyLoss損失函式的關係函式ROS
- [指令碼例項]——大批量建立信任關係+大批量分發檔案指令碼
- 【java】類之間的關係Java
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- [全程建模]元用例和需求與績效之間的關係討論