十九、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/[email protected]
exec dbms_resource_manager_prive.grant_system_privilege(‘scott‘,‘administer_resource_manager‘,true)
2)、建立各种资源对象
说明:建立资源对象前,必须分配pending内存区,建立资源对象后,必须检查并提交pending内存区。
(1)、建立pending内存区
conn scott/[email protected]
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‘);

原文地址:https://www.cnblogs.com/champaign/p/9468809.html

时间: 2024-11-10 21:24:58

十九、dbms_resource_manager(用于维护资源计划,资源使用组和资源计划指令)的相关文章

ClassLoader 提供了两个方法用于从装载的类路径中取得资源:

转:http://cheneyph.iteye.com/blog/831721 ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL  getResource (String name); public InputStream  getResourceAsStream (String name); 这里name是资源的类路径,它是相对与“/”根路径下的位置.getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该

云计算设计模式(十九)——运行重构模式

云计算设计模式(十九)——运行重构模式 设计应用程序,使得它可以在不需要重新部署或者重新启动应用程序重新配置.这有助于保持可用性并减少停机时间. 背景和问题 一个主要目的为重要的应用,如商业和企业网站是尽量减少停机时间以及由此引发的中断给客户和用户.但是,有时有必要重新配置应用程序改变特定行为或设置,而在部署和使用.因此,它是用于该应用程序被设计成这样一种方式,以允许在运行时要应用这些配置的变化,并为应用程序,以检测所述变化并且尽快地应用它们的部件的优点. 该种要应用可能被调整记录,以协助与应用

云计算设计模式(十九)——执行重构模式

云计算设计模式(十九)--执行重构模式 设计应用程序,使得它能够在不须要又一次部署或者又一次启动应用程序又一次配置.这有助于保持可用性并降低停机时间. 背景和问题 一个主要目的为重要的应用.如商业和企业站点是尽量降低停机时间以及由此引发的中断给客户和用户. 可是.有时有必要又一次配置应用程序改变特定行为或设置,而在部署和使用.因此,它是用于该应用程序被设计成这样一种方式,以同意在执行时要应用这些配置的变化,并为应用程序.以检測所述变化而且尽快地应用它们的部件的长处. 该种要应用可能被调整记录,以

设计模式 ( 十九 ):Strategy策略模式 -- 行为型

设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能.如查找.排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法:当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择.这

Python之路【第十九篇】:爬虫

Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. import

第十九章 APO连接与网络v节点

                  第十九章   APO连接与网络v节点       在编写网络底层实现前,需要做许多的准备工作:除了修改前面的章节外,可能还需写3章:本章.文件号管理类的实现.本地内存管理类的实现.我很希望最终的网络编程能给我惊喜:IP/TCP/UDP/ICMP的实现.包括所有的网络服务器的实现(HTTP.DNS.FTP等等),能到达300行的代码量:多于300行代码量那就更好了.我会很高兴.网络编程第一层简为socket层,第二层简称为TCP层,第三层简称为IP层:以后,不再

QT开发(四十九)——数据库用户接口层

QT开发(四十九)--数据库用户接口层 用户接口层主要包括Qt SQL模块中的QSqlQueryModel.QSqlTableModel.QSqlRelationalTableModel.用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更高层次的抽象,即便不熟悉SQL也可以操作数据库.需要注意的是,在使用用户接口层的类之前必须先实例化QCoreApplication对象. QT中使用了自己的机制来避免使用SQL语句,提供了更简单的数据库操作及数据显示模型,分别

Linux运维 第三阶段 (十九) varnish(1)

Linux运维 第三阶段 (十九) varnish 一.相关概念: http/1.0-->http/1.1(重大改进:对缓存功能实现了更精细化的设计) RFC(request file comment,每一种协议都有请求注解文档,讲协议规范) http页面由众多的web object组成,有些是静态,有些是通过程序执行后生成的:为加速web的访问,browser中引入了缓存机制,能将访问的静态内容或可缓存的动态内容缓存到本地,而后client再次到原始server上请求之前相同的内容时,如果原始

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据

Python进阶(三十九)-数据可视化の使用matplotlib进行绘图分析数据 ??matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. ??它的文档相当完备,并且 Gallery页面 中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. ??在Linux下比较著名的数据图工具还有gnuplot