相关文章
用资源管理器限制大数据量查询
2024-11-01 23:30

  最近生产库上经常因为一些查询账号登陆数据仓库,做了大数据量查询,sql语句甚至不带条件,严重拖累了数据库性能,
因此我增加了resource manager限制这些查询账号的最大执行时间,以及cpu使用率,目的是降低这些账号查询对数据库正常业务的影响。

用资源管理器限制大数据量查询

1.资源管理器创建的步骤:
Step 1: Create a pending area.

Step 2: Create, modify, or delete consumer groups.

Step 3: Create the resource plan.

Step 4: Create resource plan directives.

Step 5: Validate the pending area.

Step 6: Submit the pending area.


2.我的创建脚本
BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
 
 

    DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    'MAIN_GROUP',
    'rptdw main users group');
   
    DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    'QUERY_GROUP',
    'using for query users ,limit parallel threads and cpu consume percentage');
   
 
  DBMS_RESOURCE_MANAGER.CREATE_PLAN(
    'RPTDW_PLAN',
    'Plan for limit long-running queries and too many parallel querys');
 
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    'RPTDW_PLAN', 'OTHER_GROUPS', 'Directive for rptdw system users activity',
    mgmt_p1 => 100);
 
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    'RPTDW_PLAN', 'QUERY_GROUP', 'Directive for query users activity',
    mgmt_p2 => 80,
    parallel_degree_limit_p1 => 2,
    max_est_exec_time => 120);
 
  DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
   
  DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

3.如果中间报错,需要清空悬挂区。
BEGIN
  DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA();
END;
/

4,到所有RAC的节点用sys用户执行,让资源管理器计划生效。
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = rptdw_plan ;

5.我想把以下数据库账号加入新建的资源计划的QUERY_GROUP消费组
SUPPORT
FROMBI
MAIN1
MAIN4
MAIN_DBA
MREAD_Q
OPS$MON
BOCO4A
REPORT1

-- 是否有必要?
BEGIN
  DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'SUPPORT', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'FROMBI', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'MAIN1', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'MAIN4', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'MAIN_DBA', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'MREAD_Q', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'OPS$MON', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'BOCO4A', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'MAIN2', 'QUERY_GROUP');
  DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

执行成功
PL/SQL procedure successfully completed


我想把其他数据库账号加入消费组OTHER_GROUPS

DET

BEGIN
  DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'DET', 'OTHER_GROUPS');
  DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/
报错:
ERROR at line 1:
ORA-29396: cannot switch group to OTHER_GROUPS
ORA-06512: at "SYS.DBMS_RMIN", line 302
ORA-06512: at "SYS.DBMS_RESOURCE_MANAGER", line 709
ORA-06512: at line 3
注意,无法把数据库用户映射到OTHER_GROUPS,OTHER_GROUPS相当于默认组

6.给账号分配权限,然后修改这些账号的初始化的消费者组
begin
  dbms_resource_manager_privs.grant_system_privilege(grantee_name=>'MAIN2',admin_option=>true);
end;
/

begin
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'SUPPORT',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'FROMBI',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'MAIN1',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'MAIN4',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'MAIN_DBA',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'MREAD_Q',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'OPS$MON',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'BOCO4A',consumer_group =>'QUERY_GROUP',grant_option => false);
  dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name =>'MAIN2',consumer_group =>'QUERY_GROUP',grant_option => false);
end;
/
                                 
begin
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('SUPPORT','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('FROMBI','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('MAIN1','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('MAIN4','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('MAIN_DBA','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('MREAD_Q','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('OPS$MON','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('BOCO4A','QUERY_GROUP');
DBMS_RESOURCE_MANAGER.set_initial_consumer_group('MAIN2','QUERY_GROUP');
end;
/


7.回头看了最大执行时间2分钟,感觉太少了,修改消费组QUERY_GROUP的计划指导
BEGIN
  DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
  DBMS_RESOURCE_MANAGER.update_plan_directive(
         PLAN                  => 'RPTDW_PLAN',
         GROUP_OR_SUBPLAN      => 'QUERY_GROUP',
         new_max_est_exec_time => 1800
        );
  DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

    以上就是本篇文章【用资源管理器限制大数据量查询】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/news/127.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
最新文章
正在阅读:猎豹免费WiFi面世!猎豹免费WiFi使用教程猎豹免费WiFi面世!猎豹免费WiFi使用教程猎豹免费wifi手机版「正在阅读:猎豹免费WiFi面世!猎豹免费WiFi使用教程猎豹免费WiFi面
  近日,猎豹推出了一款全新的WiFi共享软件猎豹免费WiFi,不过猎豹免费WiFi目前还处于内测阶段,需要体验的用户要移步到猎豹官
电脑c盘满了怎么清理,快速清理,用这5招手机磁盘空间不足怎么清理「电脑c盘满了怎么清理,快速清理,用这5招」
​新买的电脑没用多久,突然发现系统提示磁盘空间不足。点击一看,电脑c盘空间已经爆满变红。当出现这种情况时ÿ
CDR,提取内容如何提取?手机如何打开exe文件「CDR,提取内容如何提取?」
1、首先在cdr软件中打开cdr图片;2、选中文字,依次点击“位图”-“轮廓描摹”-“线条图”;3、弹出弹窗,设置要删除的指定颜色
诺基亚光充电手机上市 可用屏幕吸收太阳能太阳能手机「诺基亚光充电手机上市 可用屏幕吸收太阳能」
继无线充电、PureView拍照技术之后,诺基亚的又一项智能手机领域的新发明即将问世,据外媒报道,这家芬兰手机制造商将在今年正式
麦芒手机怎么样华为麦芒手机「麦芒手机怎么样」
要了解华为麦芒系列的手机表现,麦芒8无疑是值得考虑的一个选项。这款手机在多个方面展现出卓越性能,以下是它的主要特点: 屏幕
90%的人有手机幻听综合症手机综合症「90%的人有手机幻听综合症」
Many of us have reached in our pockets, feeling a vibration, wrongly believing our mobile phones have just rung.许多人都
2021年一千元左右最好的手机有哪些?2021年千元以内性价比手机排行?一千元左右的华为手机「2021年一千元左右最好的手机有哪些?2021年千元以内性价比手机排行?」
2021年一千元左右最好的手机有哪些?~推荐华为畅享10 全网通 4GB+64GB,华为商城在售价格1099元,手机产品属于快消电子产品,华
上海专业 ***回收废纸废纸箱 服务一条龙带人带车上门回收上海手机回收「上海专业 ***回收废纸废纸箱 服务一条龙带人带车上门回收」
企业类型有限责任公司(自然人独资)统一社会信用代码91310112MA1GDTXT00成立日期2020-11-20法定代表人/负责人张前注册资本2,000万
传祺M8值得入手 起步加速很给力m8手机「传祺M8值得入手 起步加速很给力」
首先,外形方面这款传祺GM8采用了眼前一亮的设计语言。总体而言,新一代传祺GM8的盾形前脸变得更加稳重,并且在发动机盖增加一些
假面骑士零一模拟器(Zero-One Driver)假面骑士游戏手机版「假面骑士零一模拟器(Zero-One Driver)」
假面骑士零一模拟器,现在就成为超酷超炫的假面骑士01吧~!这是一款可以将你周遭的一切都切换成假面骑士世界要素的模拟器游戏!将0