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:包含所有活動組的統計信息的視圖