ORACLE_OCP之資料庫資源管理器
ORACLE_OCP之資料庫資源管理器
- 文章目標:
- 配置資料庫資源管理器
- 訪問並建立資源計劃
- 建立消費組
- 指定用於將資源分配給消費組的指令
- 將消費組群體對映到計劃
- 啟用資源計劃
- 監視資源管理器
一、資料庫資源管理器:概述
- 使用資源管理器去做:
- 管理混合工作量負載
- 控制系統性能
二、資料庫資源管理器:概念
三、使用資源管理器
-
您可以管理資料庫和作業系統資源,例如:
- CPU使用率 SQL/PLSQL JOB SGA/PGA記憶體地址調撥
- 並行度 網路資源 記憶體資源
- 活動會話數 (會話要進行協議解析記憶體)
- UNDO生成 磁碟
- 操作執行時間 記憶體 CPU
- 空閒時間 CPU空閒時間
- 資料庫整合 CPU 記憶體 IO 網路
- 相關服務整合 CPU 記憶體 IO 網路
-
您還可以指定條件,如果滿足這些條件,則將會話自動切換到另一個消費組中。
四、建立一個簡單的資源計劃
- 通過執行單個儲存過程來呼叫建立消費組併為其分配資源:
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_SIMPLE_PLAN(SIMPLE_PLAN => ‘SIMPLE_RESPLAN1’,
CONSUMER_GROUP1 => ‘CONSGROUP1’, GROUP1_PERCENT => 80,
CONSUMER_GROUP2 => ‘CONSGROUP2’, GROUP2_PERCENT => 20);END;
五、制定複雜的資源計劃
- 建立一個掛起的區域。
- 建立,修改或刪除消費組。
- 將會話對映到消費組。
- 建立資源計劃。
- 建立資源計劃指標。
- 驗證掛起的區域。
- 提交待處理區域。
六、資源計劃的資源分配方法
七、引數:重點和比例的比較
八、活動會話池機制
九、指定閾值
- 指定執行時間限制:
- 主動估計操作的執行時間(通過基於成本的優化器(CBO)統計資訊),預設值:UNLIMITED
- 在資源消費組級別指定最大估計執行時間
- 如果估算時間超過MAX_EST_EXEC_TIME:(ORA-07455),則不允許啟動大量作業。
- 指定其他閾值:
- 使用SWITCH_IO_MEGABYTES 限制會話I / O(以MB為單位)
- 使用SWITCH_IO_REQS 限制會話I / O請求
- 使用SWITCH_FOR_CALL返回原始消費組(預設值:FALSE,不會還原消費組)
十、設定空閒超時
DBMS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE
(PLAN => 'DAY_PLAN',
GROUP_OR_SUBPLAN => 'APPUSER',
COMMENT => 'Limit Idle Time Example',
NEW_MAX_IDLE_TIME => 600,
NEW_MAX_IDLE_BLOCKER_TIME => 300);
十一、在資料庫級別限制CPU使用率
- 資料庫整合要求:
- 相互隔離的應用程式
- 效能要保持一致
- CPU指標可用於:
- 為每個應用程式指定最小的CPU分配
- 指定如何重新分配未使用的分配
- 指定MAX_UTILIZATION_LIMIT屬性以對CPU利用率施加絕對上限(該值將覆蓋計劃中CPU現有分配值)
- 不錯的選擇:自動維護任務
十二、在資料庫級別限制CPU使用率
十三、在伺服器級別限制CPU使用率:例項限制
-
在具有多個數據庫例項的多CPU伺服器上管理CPU分配
-
啟用例項限制:
-
啟用預設CPU資源計劃
ALTER SYSTEM SET resource_manager_plan = ‘default_plan’;
-
指定例項可以隨時使用的最大CPU數.
ALTER SYSTEM SET cpu_count=4;
-
-
兩種方法:
- 過度方法:每個例項的CPU限制總和超過了CPU的實際數量。
- 分割槽方法:每個例項的CPU限制總和等於實際的CPU數量。
十四、例項限制:舉例
十五、監視例項限制(例項牢籠)
-
檢視CPU_COUNT引數的值:
SELECT value FROM v$parameter WHERE name = ‘cpu_count’ AND (isdefault = ‘FALSE’ OR ismodified != ‘FALSE’);
-
確定資源管理器狀態:
SELECT name FROM v$rsrc_plan
WHERE is_top_plan = ‘TRUE’ AND cpu_managed = ‘ON’; -
管理限制:
SELECT begin_time, consumer_group_name, cpu_consumed_time, cpu_wait_time
FROM v$rsrcmgrmetric_history
ORDER BY begin_time;SELECT name, consumed_cpu_time, cpu_wait_time
FROM v$rsrc_consumer_group;
十六、過載(失控)查詢和資源管理器
- 用於觸發消費組切換的引數: (實際切換情形視你執行狀況而定。可上可下)
- SWITCH_IO_LOGICAL 邏輯IO交換
- SWITCH_ELAPSED_TIME 切換執行時間
- 元消費組稱為LOG_ONLY
- V$SQL_MONITOR中的列:
- RM_LAST_ACTION 資源管理器最後一次啟動
- RM_LAST_ACTION_REASON 資源管理器最後一次啟動原因
- RM_LAST_ACTION_TIME 資源管理器最後一次啟動時間
- RM_CONSUMER_GROUP 資源管理消費組
- 始終填充V R S R C M G R M E T R I C 和 V RSRCMGRMETRIC和V RSRCMGRMETRIC和VRSRCMGRMETRIC_HISTORY
十七、資料庫資源管理器資訊
十八、監視資源管理器
- V$SESSION:包含RESOURCE_CONSUMER_GROUP列,該列顯示會話的當前組
- V$RSRC_PLAN:顯示活動資源計劃的檢視
- V$RSRC_CONSUMER_GROUP:包含所有活動組的統計資訊的檢視