博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DBA2 第十三章:管理资源

Posted on 2011-09-24 23:55  little健健  阅读(349)  评论(0编辑  收藏  举报

概念

  • 数据库资源管理器
    • 概览
      • 管理混合工作量
      • 控制系统性能
  • 数据库资源管理器概念
    • “资源使用者组”定义具有相似的系统或数据库资源使用需求的一组用户或会话
    • “资源计划”指定如何在各个资源使用者组之间分布资源。
    • “资源计划指令”指定如何在使用者组或子计划之间共享特定资源。通过计划指令,可以将资源使用者组及子计划与特定的资源计划关联起来。
    • “资源分配方法”确定分配任何特定资源时使用的策略。
  • 使用资源管理器的原因
    • CPU 方法:可以指定在使用者组和子计划之间如何分配 CPU 资源。
    • 并行度限制:可以控制使用者组中任何操作的最大并行度。
    • 具有队列的活动会话池:可以限制使用者组或子计划的并发活动会话数。
    • 还原池:可以控制使用者组或子计划能够生成的还原操作的总数。
    • 执行时间限制:可以指定操作所允许的最大执行时间。
    • 空闲时间限制:可以指定会话的空闲时间,超过该时间后将终止会话

资源计划

  • 访问资源计划
    • EM  管理--->计划
    • PL/SQL
      • CREATE_PLAN:命名资源计划并指定其分配方法
      • UPDATE_PLAN:更新资源计划的注释
      • DELETE_PLAN:删除资源计划及其指令
  • 示例:SYSTEM_PLAN
    • SYS_GROUP:SYS 和 SYSTEM用户的初始使用者组。
    • OTHER_GROUPS:用于所有属于活动资源计划之外的使用者组的会话。
    • LOW_GROUP:在此计划中优先级低于SYS_GROUP和 OTHER_GROUPS 的组
  • 创建新的资源计划
    • EM
    • DBMS_RESOURCE_MANAGER.SWITCH_PLAN
      (PLAN_NAME => 'DAY_PLAN',
      SID => 'ORCL',
      ALLOW_SCHEDULER_PLAN_SWITCHES => true );

使用者组

  • 创建使用者组
    • 管理 > 资源使用者组
    • 循环调度:确保所有会话均能合理执行
    • 运行至完成:分配方法指定优先处理活动时间最长的会话
  • 将用户分配至使用者组
    • 管理-->用户-->编辑-->将用户分配至使用者组

计划指令

  • 指定资源计划指令
    • 在“General(一般信息)”页上,将使用者组与计划关联,并通过CPU_MTH 值指定每个使用者组或子计划获得的 CPU 资源。
    • 指定并行度限制来控制使用者组中任何操作的最大并行度
    • 可以控制使用者组中允许的并发活动会话的最大数量。
    • 可以控制使用者组能够生成的还原总数。
    • 可以指定操作所允许的最大执行时间。
    • 可以通过指定标准来控制资源,如果满足该标准,会话将自动切换到另一个使用者组。可以
    • 指定会话处于空闲状态的时间量,超过后将终止会话。
  • 资源计划的资源分配方法
    • CPU_MTH
      • EMPHASIS
      • RATIO
    • PARALLEL_DEGREE_LIMIT_MTH 
      • PARALLEL_DEGREE_LIMIT  ABSOLUTE
      • 限制任何操作的最大并行度。只能为资源使用者组,而不能为子计划指定此方法。
    • ACTIVE_SESS_POOL_MTH 限制活动会话的数量。
      • ACTIVE_SESS_POOL_ABSOLUTE 是默认且唯一的可用方法
    • QUEUING_MTH 控制队列中不活动会话的执行顺序。
      • FIFO_TIMEOUT 是默认且唯一的可用方法。
  • 活动会话池机制:控制每个资源使用者组的最大并发活动会话数
  • 最大估计执行时间
    • 数据库资源管理器可以预先估计操作的执行时间。
    • 可以在资源使用者组级别为操作指定最大估计执行时间。
    • 如果估计时间超过 MAX_EST_EXEC_TIME,则操作不会启动。(ORA-07455) 
    • 此功能的好处是消除了使用过多系统资源的异常大的作业
    • 默认值为 UNLIMITED。
  • 调用结束时重新切换至初始使用者组
    • EM
    • DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE
      (PLAN => 'Day_Plan',
      GROUP_OR_SUBPLAN => 'DSS_GROUP',
      CPU_P1 => 100, CPU_P2 => 0,
      SWITCH_GROUP => 'LONGRUN_GROUP',
      SWITCH_TIME_IN_CALL => 600);


      DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE
      (PLAN => 'Day_Plan',
      GROUP_OR_SUBPLAN => 'LONGRUN_GROUP',
      CPU_P1 => 0, CPU_P2 => 100);
  • 设置空闲超时
    • DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE 
      (PLAN => 'DAY_PLAN',
      GROUP_OR_SUBPLAN => 'DSS_GROUP',
      COMMENT => 'Limit Idle Time Example',
      MAX_IDLE_TIME => 600,
      MAX_IDLE_BLOCKER_TIME => 300);



映射

  • 提供会话属性和使用者组之间的映射,将数据库资源管理器配置为自动将使用者组分配到会话
  • 指定映射的优先级,从而指示在冲突时优先使用哪个映射。

计划激活

  • 激活实例的资源计划
    • EM
      • 资源计划-->激活
    • RESOURCE_MANAGER_PLAN 初始化参数
    • 选定的计划将成为实例的当前最高计划
  • 数据库资源管理器信息



监视资源管理器

  • 管理-->监视器
  • 视图
    • V$SESSION:包含显示会话的当前组的resource_consumer_group 列
    • V$RSRC_PLAN:显示活动资源计划的视图
    • V$RSRC_CONSUMER_GROUP:包含所有活动组统计信息的视图