dbms_resource_manager和dbms_resource_manager_privs

dbms_resource_manager 包:
用于维护资源计划,资源使用组,资源计划指令
dbms_resource_manager_privs包:
用于维护与资源组相关的权限;


– 1.creeate_plan
/*
用于建立资源计划
plan => 资源计划名称
comment => 用户注释信息
cpu_mth => cpu分配方法
active_sess_pool_mth => 最大活动会话分配方式
parallel_degree_limit_mth => 并行调度的分配方式
queueing_mth =>会话队列的策略
*/
dbms_resource_manager.create_plan(
plan => ,
comment => ,
cpu_mth => ,
active_sess_pool_mth => ,
parallel_degree_limit_mth => ,
queueing_mth =>
);

– 2,create_simple_plan
/*
建立简单的资源计划,并且该资源计划最多包含8个资源使用组。
*/
dbms_resource_manager.create_simple_plan(
simple_plan => ,
consumer_group1 =>,group1_cpu => ,

consumer_group8 =>,group8_cpu =>
);

– 3,update_plan
/*
改过程用于更新资源计划
*/

dbms_resource_manager.update_plan(
    plan => ,
    new_comment => ,
    new_cpu_mth => ,
    new_active_sess_pool_mth => ,
    new_parallel_degree_limit_mth => ,
    new_queueing_mth => 
  );

– 4,delete_plan
/*
改过程用于删除资源计划
*/
dbms_resource_manager.delete_plan(plan => );

– 5, delete_plan_cascade
/*
级联删除,删除资源计划及其后代(资源计划指令,子计划和资源使用组)
*/
dbms_resource_manager.delete_plan_cascade(plan => );

–6,create_consumer_group(consumer顾客)
/*
建立资源使用组
*/

dbms_resource_manager.create_consumer_group(consumer_group => ,comment => ,cpu_mth => );

–7,update_consumer_group(consumer顾客)
/*
更新资源使用组
*/

dbms_resource_manager.update_consumer_group(consumer_group => ,new_comment => ,new_cpu_mth => );

–8,delete_consumer_group(consumer顾客)
/*
删除资源使用组
*/
dbms_resource_manager.delete_consumer_group(consumer_group => );

–9 ,create_plan_directive(指令)
/*
该过程用于建立资源计划指令
*/
dbms_resource_manager.create_plan_directive(
plan =>,group_or_subplan =>,comment => ,
cpu_p1 => ,cpu_p2 =>,…..cpu_p8 =>,
active_sess_pool_p1 => ,queueing_p1 => ,parallel_degree_limit_p1 => ,
switch_group => ,switch_time => ,switch_estimate => ,undo_pool =>
);

–10,update_plan_directive(指令)
/*
该过程用于修改资源计划指令
*/
dbms_resource_manager.update_plan_directive(
plan =>,group_or_subplan =>,comment => ,
cpu_p1 => ,cpu_p2 =>,…..cpu_p8 =>,
active_sess_pool_p1 => ,queueing_p1 => ,parallel_degree_limit_p1 => ,
switch_group => ,switch_time => ,switch_estimate => ,undo_pool =>
);

–11,delete_plan_directive(指令)
/*
该过程用于删除资源计划指令
*/
dbms_resource_manager.delete_plan_directive(plan => ,group_or_subplan => );

– 12,create_pending_area(pending 待定)
/*
建立pending内存分区;该部分内存用于资源管理器对象;
*/
dbms_resource_manager.create_pending_area;

–13,validate_pending_area(validate-验证)
/*
改过成用于检验资源管理器的改变;
*/

dbms_resource_manager.validate_pending_area;

–14,clear_pending_area
/*
改过成用于清除资源管理器的改变;
*/
dbms_resource_manager.clear_pending_area;

–15,submit_pending_area
/*
该过程用于提交资源管理器的改变;
*/

dbms_resource_manager.submit_pending_area;

–16,set_initial_consumer_group
/*
该过程指定用户初始资源使用组
*/
dbms_resource_manager.set_initial_consumer_group(
user => ,consumer_group =>
);

–17,switch_consumer_group_for_sess
/*
改变特定会话的资源使用组
*/

dbms_resource_manager.switch_consumer_group_for_sess(
session_id => ,
session_serial => ,
consumer_group =>
);

–18,switch_consumer_group_for_user
/*
该过程改变特定用户的所有会话的资源使用组
*/
dbms_resource_manager.switch_consumer_group_for_user
(user => ,consumer_group => );



dbms_resource_manager_privs


–1,grant_system_privilege
/*
将资源管理权授于特定用户或角色
grantee_name –被授权用户、
privilege_name —授予资源管理的权限
admin_option –是否可以转授;

*/
dbms_resource_manager_privs.grant_system_privilege(
grantee_name => ,
privilege_name => ,
admin_option =>
);

–2,grant_system_privilege
/*
将特定用户或角的资源管理权回收;
*/

dbms_resource_manager_privs.revoke_system_privilege(
revokee_name => ,
privilege_name =>
);

–3,grant_switch_consumer_group
/*
将特定的资源使用组分配给特定的用户或角色;
*/

dbms_resource_manager_privs.grant_switch_consumer_group(
grantee_name => ,
consumer_group => ,
grant_option =>

);

–4,revoke_switch_consumer_group
/*
将某用户或角色的特定的资源使用组权限收回;
*/

dbms_resource_manager_privs.revoke_switch_consumer_group(
revokee_name => ,consumer_group =>
);

———————————————————————— /*资源管理的案例

默认情况下只有特权用户sys,dba用户system可以对资源进行管理
*/

–1, 为用户授予资源管理权限

begin
dbms_resource_manager_privs.grant_system_privilege(
‘SYSTEM’,’ADMINISTER_RESOURCE_MANAGER’,false
);
end;

–2,建立各种资源对象
–2.1 建立pending内存区,为了存放各种资源对象;
begin
dbms_resource_manager.create_pending_area;
end;

--2.2 建立资源使用组
begin
  dbms_resource_manager.create_consumer_group('OLTP','联机事务处理组');
  dbms_resource_manager.create_consumer_group('DSS','决策支持组');
end;    
--2.3建立资源计划
begin
  dbms_resource_manager.create_plan('DAY' ,'该资源计划用于联机事务处理');
  dbms_resource_manager.create_plan('NIGHT' ,'该资源计划用于决策支持');
end; 
--2.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 => 'OLTP',
     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
  );
end; 

begin
  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; 

--3,验证资源管理器
begin
  dbms_resource_manager.validate_pending_area();
end; 

–4,提交pending区
begin
dbms_resource_manager.submit_pending_area;
end;

–5 ,分配用户到资源使用组
begin
dbms_resource_manager_privs.grant_switch_consumer_group(
‘SYSTEM’,’OLTP’,false);
dbms_resource_manager_privs.grant_switch_consumer_group(
‘SYSTEM’,’DSS’,false);
end;

–6,设置用户的默认资源使用组
begin
dbms_resource_manager.set_initial_consumer_group(‘SYSTEM’,’DSS’);
end;

–7,清除资源管理器
begin
dbms_resource_manager.clear_pending_area;
end;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值