Oracle数据库资源管理
- 1.了解Resource Manager术语
- 2.了解Resource Manager分配方法
- 3.了解DEFAULT_PLAN
- 4.新建资源计划
- 5.创建使用者组
- 6.了解资源分配方法
- 7.分配使用者组
- 8.激活资源计划
- 9.了解Resource Manager视图
- 10.监视Resource Manager
- Reference
1.了解Resource Manager术语
Resource Manager的3个基本结构:资源使用者组、资源计划(和辅助计划)、资源计划向导。
> 使用数据库资源管理器可以帮助管理资源 (如 CPU 和还原空间) 在用户会话间的分配方式。继续执行以下步骤可以配置资源管理器:
> - **使用者组** 定义根据资源处理需求将用户会话分组的使用者组。资源计划将资源分配给使用者组。指定一些用户和角色, 他们可以在每个使用者组中开始会话, 或者将他们的会话切换到每个使用者组。
> - **使用者组映射** 定义使用者组映射规则, 此规则基于会话属性 (例如用户名, 服务名, 模块名等) 将用户会话映射到使用者组。要解决映射冲突, 请按映射规则优先级的顺序应用映射规则。
> - **计划** 定义资源计划, 其中包含指定将资源分配给使用者组方式的指令。例如, 对于每个计划, 需要指定分配给每个使用者组的 CPU 资源百分比。可以选择指定其他限制, 如使用者组中的会话可以执行或保持空闲的最大时间, 或者会话在自动切换到低优先级的使用者组之前消耗的 CPU 或 I/O 资源的最大量。
> - **设置** 查看当前活动的资源计划。激活资源计划。
> - **性能统计信息** 监视当前启用的资源计划的统计信息。按使用者组监视 CPU 和 I/O 的使用情况, 并按使用者组监视资源管理器为 CPU 执行的约束数。
2.了解Resource Manager分配方法
Resource Manager可以根据以下一个或多个度量单位分配资源:
- CPU使用率
- 并行程度
- 活动会话数量
- 撤销空间
- CPU时限
- 闲置时间限制
3.了解DEFAULT_PLAN
资源计划resource_manager_plan参数:
```
SQL> show parameter resource
NAME TYPE VALUE
resource_limit boolean FALSE
resource_manager_cpu_allocation integer 2
resource_manager_plan string
--设置resource_manager_plan为DEFAULT_PLAN
SQL> alter system set resource_manager_plan = 'DEFAULT_PLAN';
System altered.
SQL> show parameter resource
NAME TYPE VALUE
resource_limit boolean FALSE
resource_manager_cpu_allocation integer 2
resource_manager_plan string DEFAULT_PLAN
如果未设置resource_manager_plan参数的值,则不在实例中执行资源管理。
<h1 id="4">4.新建资源计划</h1>可以使用PL/SQL包“DBMS_RESOURCE_MANAGER”的CREATE_PLAN、UPDATE_PLAN和DELETE_PLAN来创建、更新和删除资源计划。
--为资源管理器会话创建等待区(必须要创建)
exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
--新建资源计划,名称DEVELOPERS
execute DBMS_RESOURCE_MANAGER.CREATE_PLAN -
(Plan => 'DEVELOPERS', -
Comment => 'Developers, in Development database');
<h1 id="5">5.创建使用者组</h1>
新建两个使用者组:ONLINE_DEVELOPERS和BATCH_DEVELOPERS
--新建使用者组 ONLINE_DEVELOPERS
exec DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP -
(Consumer_Group => 'ONLINE_DEVELOPERS', -
Comment => 'Online developers');
--新建使用者组 BATCH_DEVELOPERS
exec DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP -
(Consumer_Group => 'BATCH_DEVELOPERS', -
Comment => 'Batch developers');
<h1 id="6">6.了解资源分配方法</h1>
创建两个计划指导,以便将75%的CPU资源分配给ONLINE_DEVELOPERS组,25%的CPU资源分配给BATCH_DEVELOPERS组。
另外,将ONLINE_DEVELOPERS组并行性限制为12,将BATCH_DEVELOPERS组的并行性限制为6。
--ONLINE_DEVELOPERS
exec dbms_resource_manager.create_plan_directive -
(Plan => 'DEVELOPERS', -
Group_or_subplan => 'ONLINE_DEVELOPERS', -
Comment => 'Online developers', -
Cpu_p1 => 75, -
Cpu_p2 => 0, -
Parallel_degree_limit_p1 => 12);
--BATCH_DEVELOPERS
exec dbms_resource_manager.create_plan_directive -
(Plan => 'DEVELOPERS', -
Group_or_subplan => 'BATCH_DEVELOPERS', -
Comment => 'Batch developers', -
Cpu_p1 => 25, -
Cpu_p2 => 0, -
Parallel_degree_limit_p1 => 6);
--OTHER_GROUPS(计划中必须包含此组)
exec dbms_resource_manager.create_plan_directive -
(Plan => 'DEVELOPERS', -
Group_or_subplan => 'OTHER_GROUPS', -
Comment => 'Everyone else', -
Cpu_p1 => 0, -
Cpu_p2 => 100, -
Parallel_degree_limit_p1 => 6);
--验证是否有效
exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
--提交更改
exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
--清除更改
exec DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA();
<h1 id="7">7.分配使用者组</h1>
将用户合理分配到使用者组中,
将JINGYU分配到Online_developers使用者组:
--赋予JINGYU切换到ONLINE_DEVELOPERS使用者组的权限
exec dbms_resource_manager_privs.grant_switch_consumer_group -
(grantee_name=>'jingyu', -
consumer_group=>'ONLINE_DEVELOPERS', -
grant_option=>true);
--将JINGYU分配到Online_developers使用者组
exec DBMS_RESOURCE_MANAGER.SET_INITIAL_CONSUMER_GROUP -
('JINGYU','ONLINE_DEVELOPERS');
将ALFRED分配到Batch_developers使用者组:
--赋予ALFRED切换到BATCH_DEVELOPERS使用者组的权限
exec dbms_resource_manager_privs.grant_switch_consumer_group -
(grantee_name=>'alfred', -
consumer_group=>'BATCH_DEVELOPERS', -
grant_option=>true);
--赋予用户administer_resource_manager权限
begin
dbms_resource_manager_privs.grant_system_privilege(
grantee_name=>'alfred',
privilege_name=>'administer_resource_manager',
admin_option=>true);
end;
/
--将alfred分配到Batch_developers使用者组
exec DBMS_RESOURCE_MANAGER.SET_INITIAL_CONSUMER_GROUP -
('alfred','BATCH_DEVELOPERS');
<h1 id="8">8.激活资源计划</h1>
--激活资源计划 DEVELOPERS
alter system set resource_manager_plan = 'DEVELOPERS';
<h1 id="9">9.了解Resource Manager视图</h1>
DBA_RSRC_PLANS -> 资源计划和每个计划的状态
DBA_RSRC_PLAN_DIRECTIVES -> 资源计划指导
DBA_RSRC_CONSUMER_GROUPS -> 资源计划使用者组
DBA_RSRC_CONSUMER_GROUP_PRIVS -> 使用者组用户和角色分配
DBA_RSRC_GROUP_MAPPINGS -> 会话属性与使用者组之间的使用者组映射
DBA_RSRC_MAPPING_PRIORITY -> 资源映射优先级
DBA_USERS -> INITIAL_RSRC_CONSUMER_GROUP列包含用户的初始化使用者
DBA_RSRC_MANAGER_SYSTEM_PRIVS -> 被授予DBMS_RESOURCE_MANAGER包上的权限的用户
查看每个计划的状态和特点:
set linesize 120
col plan for a30
col status for a30
select plan, status, num_plan_directives, mandatory from dba_rsrc_plans;
status列值为PENDING说明计划尚未经过验证并成功提交;
mandatory列值为YES说明无法删除计划。
<h1 id="10">10.监视Resource Manager</h1>
下面3个动态性能视图显示Resource Manager的统计信息:
v$rsrc_consumer_group -> 按使用者组列出的CPU使用率
v$sysstat -> 所有会话的CPU使用率
v$sesstat -> 按会话列出的CPU使用率
还可以通过EM的Resource Manager下statistics连接查询CPU、I/O、等待时间和排队会话的明细。
<h1 id="11">Reference</h1>
- OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.
Oracle数据库资源管理的更多相关文章
- 在C#中,不安装Oracle客户端如何连接Oracle数据库
本方法优点: 1.程序内集成Oracle客户端,无需用户自行进行配置 本方法缺点: 2.增加程序包的体积(Oracle instant client本身有几十兆大小) 下面说一下如何实现. 0.首先, ...
- P6 EPPM手动安装指南(Oracle数据库)(一)
P6 EPPM手动安装指南(Oracle数据库) P6 EPPM Manual Installation Guide (Oracle Database) 1. 内容... 1 1.1. ...
- [oracle]Oracle数据库安全管理
目录 + 1.数据库安全控制策略概述 + 2.用户管理 + 3.资源限制与口令管理 + 4.权限管理 + 5.角色管理 + 6.审计 1.数据库安全控制策略概述 安全性是评估一个数据库的重 ...
- oracle数据库知识点
1.oracle启动后的服务 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存 ...
- VS2010下连接Oracle数据库的方法
在vs2010下使用OleDB连接Oracle数据库 ——此方法不需要配置数据源. 1. 在“服务器资源管理器”中,选择“数据库连接”,右击,选择“添加连接”. 2. 出现下面的界面,并按图中选择“用 ...
- C#中不用安装Oracle客户端连接Oracle数据库(转)
原文地址:http://www.cnblogs.com/jiangguang/archive/2013/02/19/2916882.html 0.首先,从Oracle网站上下载对应版本的Oracle ...
- Oracle数据库的关键系统服务整理
在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动.在Oracle 运行在Windows 下时,有些服务可能我们并不总是需要但又害怕停 ...
- oracle数据库体系结构
一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...
- Oracle数据库基础操作语法
转载自:https://www.cnblogs.com/fallen-seraph/p/10685997.html 一.登录Oracle数据库 首先运行Oracle数据库: 默认的有两个账号: 管理员 ...
随机推荐
- CSS3总结
1.圆角效果 border-radius: 1px 1px 1px 1px; /* 四个半径值分别是左上角.右上角.右下角和左下角.顺时针 */ 右边半圆 div.right-circle{ hei ...
- Oracle查询和问题简记
现在做两个版本的系统,一个用的数据库是Access,另一个就是Oracle了.每个数据库支持的的查询SQL语句都有所区别,这里主要针对Access和Oracle做 记录. 首先贴出遇到问题最多的一条语 ...
- select2的相关问题
在弹出框中无法使用select2的问题: 通常情况下,使用select2只需要在加载相关js和css后,添加如下代码即可: $("#selectId").select2(); 但如 ...
- myeclipse导入项目出现jquery错误(有红叉)
今天导入了一个项目,但是进去之后jquery出现了红叉,如图(事实上在我没调好之前两个jquery文件都有叉号) 怎么调呢?右键jquery文件,选择MyEclipse->Exclude Fro ...
- tcpdump的简单使用
tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析 1.tcpdump host 192.168.8.49 获取主机192.168.8.49接收到和发出的所有分组 2. ...
- ABP理论学习之导航(Navigation)
返回总目录 本篇目录 创建菜单 注册导航提供者 展示菜单 每一个web应用在页面之间都有一些要导航的菜单.ABP提供了公用的基础设施来创建菜单并将菜单展示给用户. 创建菜单 一个应用可能由不同的模块组 ...
- CSS尺寸和字体单位-em、px还是%
在页面整体布局中,页面元素的尺寸大小(长度.宽度.内外边距等)和页面字体的大小也是重要的工作之一.一个合理设置,则会让页面看起来层次分明,重点鲜明,赏心悦目.反之,一个不友好的页面尺寸和字体大小设置, ...
- 源文件移动后gdb不显示代码的原因
源文件移动后gdb不显示代码的原因 问题 我们从一个最简单的C语言程序开始.源文件main.c在 用户目录gdb文件夹下. florian@florian-pc:~/gdb$ cat main.c ...
- python实现grep
import sys import os import re def usage(): print "[Usage]: python grep.py filename grepString. ...
- HTTPS那些事(一)HTTPS原理(转载)
原创地址:http://www.guokr.com/post/114121/ 楔子 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行 ...