概念
- 数据库资源管理器
- 概览
- 管理混合工作量
- 控制系统性能
- 数据库资源管理器概念
- “资源使用者组”定义具有相似的系统或数据库资源使用需求的一组用户或会话
- “资源计划”指定如何在各个资源使用者组之间分布资源。
- “资源计划指令”指定如何在使用者组或子计划之间共享特定资源。通过计划指令,可以将资源使用者组及子计划与特定的资源计划关联起来。
- “资源分配方法”确定分配任何特定资源时使用的策略。
- 使用资源管理器的原因
- 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:包含所有活动组统计信息的视图