ORACLE_OCP之数据库资源管理器

ORACLE_OCP之数据库资源管理器

  • 文章目标:
    • 配置数据库资源管理器
    • 访问并创建资源计划
    • 创建消费组
    • 指定用于将资源分配给消费组的指令
    • 将消费组群体映射到计划
    • 激活资源计划
    • 监视资源管理器

一、数据库资源管理器:概述

  • 使用资源管理器去做:
    • 管理混合工作量负载
    • 控制系统性能

ORACLE_OCP之数据库资源管理器_第1张图片

二、数据库资源管理器:概念

ORACLE_OCP之数据库资源管理器_第2张图片

三、使用资源管理器

  • 您可以管理数据库和操作系统资源,例如:

    • 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;

ORACLE_OCP之数据库资源管理器_第3张图片

五、制定复杂的资源计划

  • 创建一个挂起的区域。
  • 创建,修改或删除消费组。
  • 将会话映射到消费组。
  • 创建资源计划。
  • 创建资源计划指标。
  • 验证挂起的区域。
  • 提交待处理区域。

六、资源计划的资源分配方法

ORACLE_OCP之数据库资源管理器_第4张图片

七、参数:重点和比例的比较

ORACLE_OCP之数据库资源管理器_第5张图片

八、活动会话池机制

ORACLE_OCP之数据库资源管理器_第6张图片

九、指定阈值

  • 指定执行时间限制:
    • 主动估计操作的执行时间(通过基于成本的优化器(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使用率

ORACLE_OCP之数据库资源管理器_第7张图片

十三、在服务器级别限制CPU使用率:实例限制

  • 在具有多个数据库实例的多CPU服务器上管理CPU分配

  • 启用实例限制:

    • 启用默认CPU资源计划

      ALTER SYSTEM SET resource_manager_plan = ‘default_plan’;

    • 指定实例可以随时使用的最大CPU数.

      ALTER SYSTEM SET cpu_count=4;

  • 两种方法:

    • 过度方法:每个实例的CPU限制总和超过了CPU的实际数量。
    • 分区方法:每个实例的CPU限制总和等于实际的CPU数量。

十四、实例限制:举例

ORACLE_OCP之数据库资源管理器_第8张图片

十五、监视实例限制(实例牢笼)

  • 查看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 RSRCMGRMETRICVRSRCMGRMETRIC_HISTORY

十七、数据库资源管理器信息

ORACLE_OCP之数据库资源管理器_第9张图片

十八、监视资源管理器

  • V$SESSION:包含RESOURCE_CONSUMER_GROUP列,该列显示会话的当前组
  • V$RSRC_PLAN:显示活动资源计划的视图
  • V$RSRC_CONSUMER_GROUP:包含所有活动组的统计信息的视图

你可能感兴趣的:(ocp,数据库,oracle)