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:包含所有活动组的统计信息的视图