十九、dbms_resource_manager(用于维护资源计划,资源使用组和资源计划指令)
1、概述
作用:用于维护资源计划,资源使用组和资源计划指令;包dbms_resource_manager_privs用于维护与资源管理相关的权限.
2、包的组成
1)、dbms_resource_manager.create_plan
作用:建立资源计划
语法:dbms_resource_manager.create_plan(plan in varchar2,comment in varchar2,cpu_mth in varchar2 default 'EMPHASIS',
active_sess_pool_mth in varchar2 default 'ACTIVE_SESS_POOL_ABSOLUTE',
parallele_degree_limit_mth in varchar2 default 'PARALLEL_DEGREE_LIMIT_ABSOLUTE',
queueing_mth in varchar2 default 'FIFO_TIMEOUT');
其中plan指定资源计划名,comment指定用户注释信息,cpu_mth指定cpu资源的分配方法,active_sess_pool_mth指定最大活动会话的分配方法,
parallele_degree_limit_mth指定并行度的分配方法,queueing_mth指定活动会话池的队列策略类型。
2)、dbms_resource_manager.create_simple_plan
作用:用于建立简单资源计划,该资源计划最多包含8个资源使用组。
语法:dbms_resource_manager.create_simple_plan(simple_plan in varchar2 default,
consumer_group1 in varchar2 default,group1_cpu in number default,
consumer_group2 in varchar2 default,group2_cpu in number default,
consumer_group3 in varchar2 default,group3_cpu in number default,
consumer_group4 in varchar2 default,group4_cpu in number default,
consumer_group5 in varchar2 default,group5_cpu in number default,
consumer_group6 in varchar2 default,group6_cpu in number default,
consumer_group7 in varchar2 default,group7_cpu in number default,
consumer_group8 in varchar2 default,group8_cpu in number default);
3)、dbms_resource_manager.update_plan
作用:用于更新资源计划的定义
语法:dbms_resource_manager.update_plan(plan in varchar2,
new_comment in varchar2 default null,new_cpu_mth in varchar2 default null,
new_active_sess_pool_mth in varchar2 default null,new_parallel_degree_limit_mth in varchar2 default null,
new_queueing_mth in varchar2 default null);
其中new_comment指定用户的新的注释信息,new_cpu_mth指定cpu资源的新的分配方法,
new_active_sess_pool_mth指定最大活动会话的新的分配方法,
new_parallel_degree_limit_mth指定并行度的新的分配方法,
new_queueing_mth指定活动会话池的新的队列策略类型。
4)、dbms_resource_manager.delete_plan
作用:用于删除资源计划
语法:dbms_resource_manager.delete_plan(plan in varchar2);
5)、dbms_resource_manager.delete_plan_cascade
作用:用于删除资源计划及其所有后代(资源计划指令、子计划和资源使用组)
语法:dbms_resource_manager.delete_plan_cascade(plan in varchar2);
6)、dbms_resource_manager.greate_consumer_group
作用:用于建立资源使用组
语法:dbms_resource_manager.greate_consumer_group(consumer_group in varchar2,
comment in varchar2,cpu_mth in varchar2 default 'ROUND-ROBIN');
其中consumer_group指定资源使用组名。
7)、dbms_resource_manager.update_consumer_group
作用:用于更新资源使用组信息
语法:dbms_resource_manager.update_consumer_group(
consumer_group in varcahr2,new_comment in varchar2,new_cpu_mth in varchar2 default null);
8)、dbms_resource_manager.delete_consumer_group
作用:删除资源使用组
语法:dbms_resource_manager.delete_consumer_group(consumer_group in varchar2);
9)、dbms_resource_manager.create_plan_directive
作用:建立资源计划指令
语法:dbms_resource_manager.create_plan_directive(
plan in varchar2,group_or_subplan in varchar2,
comment in varchar2,cpu_p1 in number default null,
cpu_p2 in number default null,cpu_p3 in number default null,
cpu_p4 in number default null,cpu_p5 in number default null,
cpu_p6 in number default null,cpu_p7 in number default null,
cpu_p8 in number default null,
active_sess_pool_p1 in number default unlimited,
queueing_p1 in number default unlimited,
switch_group in varchar2 default null,
switch_time in number default unlimited,
switch_estimate in boolean default false,
max_est_exec_time in number default nulimited,
undo_pool in number default unlimited,
paralle1_degree_limit_p1 in number default unlimited);
其中group_or_subplan指定资源使用组或者子计划的名称,cpu_p1指定CPU资源分配方法的第一个参数(p2是第二个参数。。。),
active_sess_pool_p1指定最大活动会话分配方法的第一个参数,queueing_p1指定队列超时时间,
switch_group指定到达切换时间时要切换到的资源使用组,switch_time指定切换时间,
switch_estimate默认false,设置为true时表示通知Oracle使用执行时间估计自动切换资源使用组。
undo_pool指定资源使用组的undo池尺寸,paralle1_degree_limit_p1指定并行度分配方法的第一个参数。
10)、dbms_resource_manager.update_plan_directive
作用:用于更新资源计划指令
语法:dbms_resource_manager.update_plan_directive(
plan in varchar2,group_or_subplan in varchar2,
new_comment in varchar2,cpu_p1 in number default null,
new_cpu_p2 in number default null,new_cpu_p3 in number default null,
new_cpu_p4 in number default null,new_cpu_p5 in number default null,
new_cpu_p6 in number default null,new_cpu_p7 in number default null,
new_cpu_p8 in number default null,
new_active_sess_pool_p1 in number default unlimited,
new_queueing_p1 in number default unlimited,
new_switch_group in varchar2 default null,
new_switch_time in number default unlimited,
new_switch_estimate in boolean default false,
new_max_est_exec_time in number default nulimited,
new_undo_pool in number default unlimited,
new_paralle1_degree_limit_p1 in number default unlimited);
其中new_cpu_p1指定CPU资源分配方法的第一个参数(p2是第二个参数。。。),
new_active_sess_pool_p1指定最大活动会话分配方法的第一个参数,new_queueing_p1指定队列超时时间,
new_switch_group指定到达切换时间时要切换到的资源使用组,new_switch_time指定切换时间,
new_switch_estimate默认false,设置为true时表示通知Oracle使用执行时间估计自动切换资源使用组。
new_undo_pool指定资源使用组的undo池尺寸,new_paralle1_degree_limit_p1指定并行度分配方法的第一个参数。
11)、dbms_resource_manager.delete_plan_directive
作用:用于删除资源计划指令
语法:dbms_resource_manager.delete_plan_directive(plan in varchr2,group_or_subplan in varchar2);
12)、dbms_resource_manager.create_pending_area
作用:用于建立pending内存区,并且该内存区将用于改变资源管理对象
语法:dbms_resource_manager.create_pending_area;
13)、dbms_resource_manager.validate_pending_area
作用:用于校验资源管理器的改变
语法:dbms_resource_manager.validate_pending_area;
14)、dbms_resource_manager.clear_pending_area
作用:用于清除资源管理器的改变
语法:dbms_resource_manager.clear_pending_area;
15)、dbms_resource_manager.submit_pending_area
作用:用于提交资源管理器的改变
语法:dbms_resource_manager.submit_pending_area;
16)、dbms_resource_manager..set_initial_consumer_group
作用:用于指定用户的初始资源使用组
语法:dbms_resource_manager.set_initial_consumer_group(user in varchar2,consumer_group in varchar2);
其中user指定用户名,consumer_group指定用户的初始资源使用组名。
17)、dbms_resource_manager.switch_consumer_group_for_sess
作用:dbms_resource_manager.switch_consumer_group_for_sess(session_id
in number,session_serial in number,consumer_group in varchr2);
其中session_id指定会话ID号,session_serial指定会话序列号。
18)、dbms_resource_manager.switch_consumer_group_for_user
作用:用于改变特定用户所有会话的资源使用组
语法:dbms_resource_manager.switch_consumer_group_for_user(user in varchar2,consumer_group in varchar2);
19)、dbms_resource_manager_privs.grant_system_privilege
作用:用于将资源管理权限授予用户或角色
语法:dbms_resource_manager_privs.grant_system_privilege(grantee_name in varchar2,
privilege_name in varchar2 default 'administer_resource_manager',admin_option in boolean);
其中grantee_name指定被授权的用户或角色,privilege_name指定要授予的资源管理权限,
admin_option指定是否可以转授资源管理权限(true为能,false为不能)
例子:exec dbms_resource_manager_prive.grant_system_privilege('scott','administer_resource_manager',true)
20)、dbms_resource_manager_privs.revoke_system_privilege
作用:用于回收资源管理权限
语法:dbms_resource_manager_privs。revoke_system_privilege(revokee_name
in varchar2,privilege_name in varchar2 default
'administer_resource_manager');
其中revoke_name指定被收回权限的用户或角色,privilege_name指定要收回的资源管理权限。
例子:exec dbms_resource_manager_privs.revoke_system_privilege('scott','administer_resource_maneger');
21)、dbms_resource_manager_privs.grant_switch_consumer_group
作用:用于将用户或角色分配给特定的资源使用组
语法:dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name
in varchar2,consumer_group in varchar2,grant_option in boolean);
其中grant_option指定资源使用组转授选项
例子:exec dbms_resource_manager_privs.grant_switch_consumer_group('scott','sys_group',true)
22)、dbms_resource_manager_privs.revoke_switch_consumer_group
作用:用于收回分配给用户或角色的资源使用组
语法:dbms_resource_manager_privs.revoke_switch_consumer_group(revokee in varchar2,consumer_group in varchar2);
例子:dbms_resource_manager_privs.revoke_switch_consumer_group('scott','sys_group');
3、综合实例
1)、为用户授权资源管理权限
说明:默认情况下只有特权用户sys,dba用户system可以进行资源管理,其余用户要使用要为其授权,下面授权给scott。
conn system/menager@test
exec dbms_resource_manager_prive.grant_system_privilege('scott','administer_resource_manager',true)
2)、建立各种资源对象
说明:建立资源对象前,必须分配pending内存区,建立资源对象后,必须检查并提交pending内存区。
(1)、建立pending内存区
conn scott/tiger@test
exec dbms_resource_manager.create_pending_area
(2)、建立资源使用组
exec dbms_resource_manager.create_consumer_group('oltp','联机事务处理组');
exec dbms_resource_manager.create_consumer_group('dss','决策支持组');
(3)、建立资源计划
exec dbms_resource_manager.create_plan('day','该资源计划用于联机事务处理');
exec dbms_resource_manager.create_plan('night','该资源计划用于决策支持');
(4)、建立资源计划指令
说明:建立资源计划指令必须要在资源计划和other_groups组之间的定义管理关系。
例子:
begin
dbms_resource_manager.create_plan_directive(plan=>'DAY',group_or_subplan=>'sys_group',comment=>'最高级别组',cpu_p1=>100,parallel_degree_limit_p1=>3);
dbms_resource_manager.create_plan_directive(plan=>'DAY',group_or_subplan=>'olpt',comment=>'中间级别组',cpu_p2=>80,parallel_degree_limit_p1=>1);
dbms_resource_manager.create_plan_directive(plan=>'DAY',group_or_subplan=>'other_groups',comment=>'最低级别组',cpu_p3=>80,parallel_degree_limit_p1=>1);
dbms_resource_manager.create_plan_directive(plan=>'NIGHT',group_or_subplan=>'sys_group',comment=>'最高级别组',cpu_p1=>100,parallel_degree_limit_p1=>20);
dbms_resource_manager.create_plan_directive(plan=>'NIGHT',group_or_subplan=>'dss',comment=>'中间级别组',cpu_p2=>80,parallel_degree_limit_p1=>20);
dbms_resource_manager.create_plan_directive(plan=>'NIGHT',group_or_subplan=>'other_groups',comment=>'最低级别组',cpu_p3=>80,parallel_degree_limit_p1=>20);
end;
(5)、验证pending内存区
说明:验证通过则可以提交pending内存区,不通过需要清除pending内存区并重新建立资源对象。
exec dbms_resource_manager.validate_pending_area
(6)、提交pending内存区
说明:提交pending内存区最终建立永久的资源管理对象。
exec dbms_resource_manager.submit_pending_area
3)、分配用户到资源使用组
exec dbms_resource_manager_privs.grant_switch_consumer_group('scott','oltp',false);
exec dbms_resource_manager_privs.grant_switch_consumer_group('scott','dss',false);
4)、设置用户的默认资源使用组
说明:数据库用户可以属于多个资源使用组,但在特定会话特定时刻只能使用某个资源使用组的相应资源。
通过设置用户的默认资源使用组,可以使用户登录时自动使用相应资源使用组的资源。
exec dbms_resource_manager.set_initial_consumer_group('scott','oltp');
5)、激活资源计划
说明:为了通过数据库资源管理器限制数据库用户的资源使用,必须要激活资源计划。
alter system set resource_manager_plan=DAY where scope=momory.
6)、改变会话或用户的资源使用组
说明:如果用户属于多个资源使用组,初始登录时会使用默认资源使用组,为了改变特定会话的资源使用组,
执行exec dbms_resource_manager.switch_consumer_group_for_sess(7,8,'dss');
为了改变特定用户所有会话的资源使用组,
执行exec dbms_resource_manager.switch_consumer_group_for_user('scott','dss');
十九、dbms_resource_manager(用于维护资源计划,资源使用组和资源计划指令)的更多相关文章
- 第十九章——使用资源调控器管理资源(1)——使用SQLServer Management Studio 配置资源调控器
原文:第十九章--使用资源调控器管理资源(1)--使用SQLServer Management Studio 配置资源调控器 本系列包含: 1. 使用SQLServer Management Stud ...
- 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...
- ClassLoader 提供了两个方法用于从装载的类路径中取得资源:
转:http://cheneyph.iteye.com/blog/831721 ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL getResource ( ...
- finally不管有没有错都会运行 finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
- IDEA项目搭建十四——Web站点Controller基类及布局页静态资源设计
一.简介 站点搭建完成后,编写页面时一般会有如下几个需求 1.嵌套静态页面时有很大一部分通用代码,如css.js这部分可以使用thymeleaf的局部片段代码块组成 2.这些静态资源默认放在程序中,但 ...
- Web 开发人员和设计师必读文章推荐【系列二十九】
<Web 前端开发精华文章推荐>2014年第8期(总第29期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十九】
<Web 前端开发精华文章推荐>2013年第七期(总第十九期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- 第十九次ScrumMeeting博客
第十九次ScrumMeeting博客 本次会议于12月9日(六)22时整在3公寓725房间召开,持续20分钟. 与会人员:刘畅.辛德泰.张安澜.赵奕.方科栋. 1. 每个人的工作(有Issue的内容和 ...
随机推荐
- 下一个亿万市场:企业级SaaS服务谁能独领风骚
注:SaaS是Software-as-a-Service(软件即服务)的简称,一种完全创新的软件应用模式,简单来说SaaS即为提供商基于互联网为企业提供软件服务. 对中小型企业来说:SaaS是采用先 ...
- 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet
原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...
- windows7上安装php7和apche2.4
windows7在配置php7+apache2.4 1.下载并安装vc14http://www.microsoft.com/zh-cn/download/details.aspx?id=48145下载 ...
- Python 实例——进度条,文件读取
进度条: import sys import time for i in range(50): sys.stdout.write("*") sys.stdout.flush() t ...
- python3 使用opencv 画基本图形
在Python3 环境下安装opencv-python 后练习画基本图形: import numpy as np import cv2 # BGR format GREEN = (0, 255, 0) ...
- Junit中的setup和teardown方法
setup需要@before注解,实现测试前的初始化工作 teardown需要@after注解,测试完成后垃圾回收等后续工作
- 20145301实验四 Android开发基础
20145301<Java程序设计>实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.26 15:30- ...
- 20135320赵瀚青LINUX内核分析第一周学习笔记
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...
- 终极之shell-zsh全解析
什么是Zsh Zsh是一款强大的虚拟终端,既是一个系统的虚拟终端,也可以作为一个脚本语言的交互解析器. Zsh的一些特性 兼容bash,原来使用bash的兄弟切换过来毫无压力. 强大的历史纪录功能,在 ...
- java入门了解01
http://www.oracle.com/technetwork/java/javase/downloads/index.html dos命令大全:http://www.zou114.com/dos ...