Oracle 12c 多租戶專題|12cR2中PDB記憶體資源管理
原文連結
在12.2之前的版本,我們根本沒有辦法控制一個單獨的PDB能使用的記憶體總量。導致的結果就是“一個糟糕的鄰居”可能佔用大量記憶體從而導致同一個例項下其他PDB的效能下降。在Oracle 12.2中,你可以控制某單個PDB能使用的記憶體總量。
如果你的CDB中只有一個PDB,那麼你就不需要做這些限制,因為你本來就想讓這個單獨的PDB用掉例項的所有記憶體。
PDB記憶體引數
下列引數都可以在PDB級別進行設定:
-
DB_CACHE_SIZE : The minimum buffer cache size for the PDB.
-
SHARED_POOL_SIZE : The minimum shared pool size for the PDB.
-
PGA_AGGREGATE_LIMIT : The maximum PGA size for the PDB.
-
PGA_AGGREGATE_TARGET : The target PGA size for the PDB.
-
SGA_MIN_SIZE : The minimum SGA size for the PDB.
-
SGA_TARGET : The maximum SGA size for the PDB.
關於哪些值可以設定也有一些限制,官方文件中給出了詳細的解釋(),總結如下:
-
CDB中的NONCDB_COMPATIBLE引數必須設為FALSE
-
CDB中的MEMORY_TARGET引數未設定或者為0
-
獨立的引數會有不同的最大值,來防止你給一個PDB分配過量的記憶體。如果你嘗試設定一個錯誤的值將會報錯。
設定PDB記憶體引數
設定PDB記憶體引數的過程和設定一個普通例項的儲存引數並沒有什麼區別。下面的例子是修改SGA_TARGET引數。
檢查CDB的當前設定:
CONN / AS SYSDBA
SHOW PARAMETER sga_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 2544M
SQL>
檢查PDB的當前設定:
CONN / AS SYSDBA ALTER SESSION SET CONTAINER=pdb1; SHOW PARAMETER sga_target; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_target big integer 0 SQL>
設定PDB的SGA_TARGET引數:
SQL> ALTER SYSTEM SET sga_target=1G SCOPE=BOTH;System altered. SQL> SHOW PARAMETER sga_target; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_target big integer 1G SQL>
當我們嘗試給PDB制定一個比所處的CDB更大的SGA時將會報如下的錯誤:
SQL> ALTER SYSTEM SET sga_target=3G SCOPE=BOTH; ALTER SYSTEM SET sga_target=3G SCOPE=BOTH *ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-56747: invalid value 3221225472 for parameter sga_target; must be smaller than parameter sga_target of the root container SQL>
如果你不再想控制這個引數的值,你可以把它設定為0或者reset掉。
ALTER SYSTEM SET sga_target=0 SCOPE=BOTH; ALTER SYSTEM RESET sga_target;
監控PDB的記憶體使用
Oracle提供了一些檢視來監控PDB的資源使用(例如CPU、I/O、記憶體)。每個檢視包含相同的資訊,只是保留時間不同。
-
V$RSRCPDBMETRIC:一個PDB對應一條記錄,只保留最近一分鐘的資料
-
V$RSRCPDBMETRIC_HISTORY:一個PDB對應61行記錄,保留最近60分鐘的資料
-
DBA_HIST_RSRC_PDB_METRIC:AWR快照,保留時間基於AWR的保留時間
例子如下:
CONN / AS SYSDBASET LINESIZE 150COLUMN pdb_name FORMAT A10COLUMN begin_time FORMAT A26COLUMN end_time FORMAT A26ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS'; ALTER SESSION SET NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF'; -- Last sample per PDB.SELECT r.con_id, p.pdb_name, r.begin_time, r.end_time, r.sga_bytes, r.pga_bytes, r.buffer_cache_bytes, r.shared_pool_bytesFROM v$rsrcpdbmetric r, cdb_pdbs pWHERE r.con_id = p.con_idORDER BY p.pdb_name;-- Last hours samples for PDB1SELECT r.con_id, p.pdb_name, r.begin_time, r.end_time, r.sga_bytes, r.pga_bytes, r.buffer_cache_bytes, r.shared_pool_bytesFROM v$rsrcpdbmetric_history r, cdb_pdbs pWHERE r.con_id = p.con_idAND p.pdb_name = 'PDB1'ORDER BY r.begin_time;-- All AWR snapshot information for PDB1.SELECT r.snap_id, r.con_id, p.pdb_name, r.begin_time, r.end_time, r.sga_bytes, r.pga_bytes, r.buffer_cache_bytes, r.shared_pool_bytesFROM dba_hist_rsrc_pdb_metric r, cdb_pdbs pWHERE r.con_id = p.con_idAND p.pdb_name = 'PDB1'ORDER BY r.begin_time;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2145097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c 多租戶在 CDB 中 Plug A PDB,Unplugging A PDBOracle
- Oracle 12c 多租戶 CDB 與 PDB 備份Oracle
- Oracle 12c 多租戶 手工建立 pdb 與 手工刪除 pdbOracle
- Part III PDB建立概述-Oracle多租戶管理員指南Oracle
- Oracle 12c 多租戶專題|CDB後設資料內幕Oracle
- Oracle 12c 多租戶配置和修改 CDB 和 PDB 引數Oracle
- oracle 12c 多租戶 pdb 恢復(單個pdb資料檔案、非系統pdb表空間、整個pdb資料庫)Oracle資料庫
- Oracle 12c多租戶特性詳解:PDB 的建立、克隆與維護Oracle
- Oracle 12c多租戶特性詳解:PDB 的出與入 InAndOutOracleNaN
- Oracle 12c多租戶特性詳解:PDB 的備份與恢復Oracle
- oracle 12c 多租戶體系結構概念Oracle
- Oracle Database 12cR2多租戶權威指南OracleDatabase
- 12C多租戶關於CDB、PDB的常用SQL語句SQL
- Oracle 12c 多租戶 CDB 與 PDB之 shared undo 與 Local undo 切換Oracle
- Part I CDB中的Oracle資源管理器概述07-Oracle多租戶管理員指南Oracle
- Oracle 12c系列(一)|多租戶容器資料庫Oracle資料庫
- 多租戶:防止意外建立可插拔資料庫(PDB)- Lone-PDB資料庫
- 【PDB】Oracle PDB資源管理參考Oracle
- Part II 配置和管理多租戶環境概述-Oracle多租戶管理員指南Oracle
- Oracle 12c 多租戶 CDB 與 PDB 級別 expdb 與 impdb(表、使用者、全庫)Oracle
- 故障分析 | 租戶 memstore 記憶體滿問題排查記憶體
- 大資料體系下的多租戶管理方案大資料
- Oracle 18c新特性詳解-多租戶專題Oracle
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 2Oracle資料庫
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 1Oracle資料庫
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 3Oracle資料庫
- 多租戶:在Oracle12.2中 從Non-CDB遷移到PDB,從PDB遷移另一個CDB中Oracle
- Oracle多租戶管理員指南-體系結構介紹01Oracle
- Oracle12c多租戶如何啟動關閉CDB或PDB (PDB自動啟動)Oracle
- Oracle12c多租戶如何連線到CDB或PDB、CDB與PDB容器切換Oracle
- Oracle12c多租戶資料庫 - PDB資料庫的unplug及plug 參考Oracle資料庫
- Oracle 12c PDB中碰到的DG問題Oracle
- Oracle 12c系列(四)|資源隔離之IO、記憶體、CPUOracle記憶體
- Oracle多租戶管理員指南-CDB共性概念03Oracle
- GoldenGate 12.2抽取Oracle 12c多租戶配置過程GoOracle
- Part I CDB中容器概述01-Oracle多租戶管理員指南Oracle
- HBase多租戶-Namespace Quota管理namespace
- Oracle12c多租戶資料庫備份與恢復 - 恢復一個PDBOracle資料庫