oracle12c之 控制pdb中sga 與 pga 記憶體使用
Memory Management using Resource Manager
Oracle資料庫資源管理器(資源管理器)現在可以在多租戶容器資料庫(CDB)中管理可插入資料庫(PDBs)之間的記憶體使用。這一特性有助於在CDB中維護所有PDBs的效能,確保所有的PDBs都不會佔用更多資源,從而導致其他PDBs上的資源緊縮。
前提只有滿足以下條件,才能控制PDBs的記憶體使用:
1、在CDB根中,noncdb_compatible初始化引數設定為false。
2、MEMORY_TARGET初始化引數沒有設定,或者在CDB根中設定為0(0)。
In 12.2, Resource Manager allows to:
1、限制特定PDB的記憶體使用。
2、指定為特定PDB保證的記憶體數量。
3、指定一個特定的PDB可以使用的最大記憶體數量。
along with other options such as:
指定不同的PDBs應該接收系統資源的不同份額,以便將更多的資源分配給更重要的PDBs。
限制特定PDB的CPU使用。
限制特定PDB可以使用的並行執行伺服器的數量。
為不同的PDB使用PDB效能配置檔案(詳細資訊請參閱2171135.1)
限制連線到單個PDB的不同會話的資源使用。
限制特定PDBs生成的I/O。
監控PDBs的資源使用情況。
一、 Managing SGA for PDBs:
容器資料庫中各種PDBs的SGA需求將是不同的。如果沒有控制SGA使用的機制,活躍的PDB可以消耗SGA空間的大多數,從而導致資源限制給其他PDBs,從而影響它們的效能。
1.從12cR2中,我們可以控制在容器資料庫中PDB可以使用的最大SGA,以及需要為PDB分配的最小SGA。
SGA_TARGET引數可用於限制PDB的最大SGA大小。PDB中的SGA_TARGET設定必須小於或等於CDB根中的SGA_TARGET設定。
只有當SGA_TARGET初始化引數設定為CDB根中的非零值時,PDB中的SGA_TARGET和SGA_MIN_SIZE設定才會被強制執行。
alter session set container=PDB1;
ALTER SYSTEM SET SGA_TARGET = 1500M SCOPE = BOTH;
ALTER SYSTEM SET SGA_MIN_SIZE = 500M SCOPE = BOTH;
2.可以使用SGA_MIN_SIZE引數指定PDB的最小SGA大小。
SGA_MIN_SIZE引數確保了PDB的SGA永遠不會低於指定的值。
設定SGA_MIN_SIZE(最小保證SGA)引數的指導原則是:
它必須小於或等於CDB根中SGA_TARGET設定的50%。
它必須小於或等於PDB中SGA_TARGET設定的50%。
所有PDBs的SGA_MIN_SIZE設定的總和必須小於或等於CDB根中SGA_TARGET設定的50%。
說明:最佳實踐是將所有PDBs的SGA_MIN_SIZE值的總和限制為CDB的SGA大小的50%或更少。
二、 Managing PGA for PDBs
為了控制PDB的PGA使用,可以在PDB級別設定引數PGA_AGGREGATE_TARGET和PGA_AGGREGATE_LIMIT。
PGA_AGGREGATE_TARGET設定是一個目標。因此,Oracle資料庫嘗試將PGA記憶體使用限制在目標上,但是使用可以超過設定的次數。要指定對PGA記憶體使用的硬限制,可以使用PGA_AGGREGATE_LIMIT初始化引數。Oracle資料庫確保PGA大小不超過這個限制。如果資料庫超過了限制,那麼資料庫就會中止具有最高可調PGA記憶體分配的會話的呼叫。
PGA_AGGREGATE_TARGET引數設定PDB的目標聚合PGA大小。
設定PGA_AGGREGATE_TARGET的指導原則是:
它必須小於或等於在CDB級別上設定的PGA_AGGREGATE_TARGET值。
它必須小於或等於CDB級別上的PGA_AGGREGATE_LIMIT初始化引數值的50%。
它必須小於或等於PDB中的PGA_AGGREGATE_LIMIT值的50%。
設定PGA_AGGREGATE_LIMIT的指導原則是:
它必須小於或等於CDB根中PGA_AGGREGATE_LIMIT的設定。
它必須大於或等於兩倍於PDB中PGA_AGGREGATE_TARGET的設定。
alter session set container=PDB1;
ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 700M SCOPE = BOTH;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 300M SCOPE = BOTH;
-- 檢視 PDB 的 current SGA 與 PGA 的使用情況
COLUMN PDB_NAME FORMAT A10;
SELECT r.CON_ID, p.PDB_NAME, r.SGA_BYTES/1024/1024 SGA_M, r.PGA_BYTES/1024/1024 PGA_M,
r.BUFFER_CACHE_BYTES/1024/1024 BUFFER_CACHE_M, r.SHARED_POOL_BYTES/1024/1024 SHARED_POOL_M
FROM V$RSRCPDBMETRIC r, CDB_PDBS p WHERE r.CON_ID = p.CON_ID;
CON_ID PDB_NAME SGA_M PGA_M BUFFER_CACHE_M SHARED_POOL_M
---------- ---------- ---------- ---------- -------------- -------------
3 PDB01 34.3150578 7.44008255 28.828125 5.48693275
參考:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2151449/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SGA和PGA記憶體管理記憶體
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- 當實體記憶體小於sga+pga時記憶體
- oracle例項記憶體(SGA和PGA)調整Oracle記憶體
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- 【SGA】【PGA】普適的Oracle記憶體分配策略Oracle記憶體
- SGA與共享記憶體記憶體
- SGA與共享記憶體2記憶體
- 記憶體_SGA記憶體
- ORACLE 記憶體管理 之四 SGAOracle記憶體
- Oracle PGA記憶體的配置和使用Oracle記憶體
- SGA與共享記憶體的關係記憶體
- 將SGA全部PIN到記憶體中記憶體
- ORACLE RAC 記憶體SGA,PGA配置超過300G的問題Oracle記憶體
- PGA 記憶體的管理 (zt)記憶體
- Oracle Exadata與SGA快取記憶體CQOracle快取記憶體
- SGA中各池記憶體分配顆粒大小與SGA_TARGET引數的關係記憶體
- 使用lock_sga和pre_page_sga引數保證SGA常駐實體記憶體記憶體
- 如何檢視和設定sga和pga的當前記憶體的建議值記憶體
- Linux中設定hugepages 在記憶體中 lock SGALinux記憶體
- 【引數】使用lock_sga和pre_page_sga引數保證SGA常駐實體記憶體記憶體
- ORACLE記憶體管理 之一 ORACLE PGAOracle記憶體
- Oracle記憶體結構研究-PGA篇Oracle記憶體
- oracle體系結構梳理---SGA+PGAOracle
- ORACLE 記憶體管理 之六 SGA Multiple Block Sizes,Large PoolOracle記憶體BloC
- 對oracle例項的記憶體(SGA和PGA)進行調整,優化資料庫性Oracle記憶體優化資料庫
- Oracle記憶體結構研究-SGA篇Oracle記憶體
- ORACLE 記憶體管理 之二 PGA v$pgastatOracle記憶體AST
- 自動SGA共享記憶體管理,ASMM,MMAN,sga_target,sga_max_size記憶體ASM
- Oracle 體系結構 SGA 和PGA 總結Oracle
- [Virtualization]ESXi體系結構與記憶體管理(二)控制記憶體分配記憶體
- [Virtualization]ESXi體系結構與記憶體管理(三)控制記憶體分配記憶體
- 實體記憶體充足卻無法增加SGA記憶體
- PGA,sga命中sql查詢SQL
- 查詢SGA和PGA大小
- 9i 下sga_max_size 和SGA中各記憶體分配項的關係記憶體
- 深入淺出sga和pga章節記載-01
- 【CDB】怎樣修改PDB的記憶體引數記憶體