1. 程式人生 > 資料庫 >ORACLE_OCP之資料庫資源管理器

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:包含所有活動組的統計資訊的檢視