ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 574|回复: 1

ORM问题

[复制链接]
认证徽章
论坛徽章:
15
双黄蛋
日期:2012-04-12 16:03:45秀才
日期:2017-02-22 15:18:00托尼托尼·乔巴
日期:2017-01-16 14:38:48马上有车
日期:2015-01-21 11:11:56水瓶座
日期:2015-10-08 14:43:47优秀写手
日期:2014-09-05 06:00:03马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02三菱
日期:2013-12-26 08:33:09ITPUB社区OCM联盟徽章
日期:2014-08-08 09:20:49
发表于 2017-4-11 16:21 | 显示全部楼层 |阅读模式

1.处理pending area
所有关于 Resource Manager 组件创建和更改都必须在 Pending Area 中完成,文档说可以理解为一个“草稿区”

SQL> exec DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;

PL/SQL procedure successfully completed.

SQL> exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA

PL/SQL procedure successfully completed.



2.创建资源计划
BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PLAN(plan => 'main_plan',comment => 'main database plan',sub_plan => FALSE);
END;
/



3.创建资源用户组
BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(consumer_group => 'kaifa',comment => 'kaifa',mgmt_mth => 'ROUND-ROBIN');           
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(consumer_group => 'yingyong',comment => 'yingyong',mgmt_mth => 'ROUND-ROBIN');           
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(consumer_group => 'lingdao',comment => 'lingdao',mgmt_mth => 'ROUND-ROBIN');           
END;
/



4.映射资源用户组

create user yanfa1 identified by oracle;
create user yanfa2 identified by oracle;
create user ying1 identified by oracle;
create user ying2 identified by oracle;
create user lingdao identified by oracle;

grant connect,resource,dba to yanfa1;
grant connect,resource,dba to yanfa2;
grant connect,resource,dba to ying1;
grant connect,resource,dba to ying2;
grant connect,resource,dba to lingdao;


BEGIN
    DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(attribute => 'ORACLE_USER',value => 'yanfa1',consumer_group => 'kaifa');
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(attribute => 'ORACLE_USER',value => 'yanfa2',consumer_group => 'kaifa');
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(attribute => 'ORACLE_USER',value => 'ying1',consumer_group => 'yingyong');
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(attribute => 'ORACLE_USER',value => 'ying2',consumer_group => 'yingyong');
END;
/

BEGIN
    DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(attribute => 'CLIENT_MACHINE',value => 'Lenovo-PC',consumer_group => 'lingdao');
END;
/

我们为2个研发用户,2个应用用户,一个领导用户 与资源用户组做了关联.其中领导比较特殊,领导采用机器的方式进行关联


5.创建资源计划指令

BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan => 'main_plan',                                       
    group_or_subplan => 'kaifa',                                         
    comment => 'Directives for yanfa',
    active_sess_pool_p1 => 1,                                                     
    queueing_p1 => 1,                                    
    parallel_degree_limit_p1 => 2,                        
    switch_group => 'KILL_SESSION',                       
    switch_time => 60,                                    
    switch_estimate => FALSE,                             
    max_est_exec_time => 0,                              
    undo_pool => NULL,                                    
    max_idle_time => 300,                                 
    max_idle_blocker_time => 3,                           
    mgmt_p1 => 10,                                         
    mgmt_p2 => 0);                                          
END;
/

由于研发的帐号比较严格,只允许一个帐号在线,只允许 2 个并行, 如果一个查询超过了 60 秒就会被kill


BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan => 'main_plan',                                       
    group_or_subplan => 'yingyong',                           
    comment => 'Directives for yingyong',
    active_sess_pool_p1 => 2,                                          
    queueing_p1 => 1,                                      
    parallel_degree_limit_p1 => 2,                        
    switch_group => 'KILL_SESSION',                       
    switch_time => 0,                                    
    switch_estimate => FALSE,                              
    max_est_exec_time => 0,                              
    undo_pool => NULL,                                   
    max_idle_time => 300,                                
    max_idle_blocker_time => 3,                        
    mgmt_p1 => 10,                                       
    mgmt_p2 => 0);                                       
END;
/

应用的帐号权限也不高,但可以两个用户同时在线.


BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan => 'main_plan',                                       
    group_or_subplan => 'lingdao',                             
    comment => 'Directives for lingdao',
    active_sess_pool_p1 => 1,                                          
    queueing_p1 => 1  ,                                 
    parallel_degree_limit_p1 => 200,                  
    switch_group => 'KILL_SESSION',                     
    switch_time => 0,                                    
    switch_estimate => FALSE,                           
    max_est_exec_time => 0,                              
    undo_pool => NULL,                                   
    max_idle_time => 300,                              
    max_idle_blocker_time => 3,                          
    mgmt_p1 => 0,                                    
    mgmt_p2 => 50);                                      
END;
/


BEGIN
    DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan => 'main_plan',                                       
    group_or_subplan => 'OTHER_GROUPS',                              
    comment => 'Directives for OTHER_GROUPS',
    mgmt_p1 => 20,                                         
    mgmt_p2 => 0);                                      
END;
/

6.验证并提交


SQL> exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA()

PL/SQL procedure successfully completed.

SQL> exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA()

PL/SQL procedure successfully completed.






上面是配置过程,我的问题是

select username,initial_rsrc_consumer_group from dba_users

在查询用户属性时,很明显可以看到 用户 YANFA1 的 initial_rsrc_consumer_group 组是 KAIFA
但是查看

select username,resource_consumer_group from v$session
却看到 YANFA1 用户的  resource_consumer_group 组是 OTHER_GROUPS,  并且所做的  resource manager 限制均不生效.并且重新几次创建数据库,按上面的步骤操作,结果均相同.
请各位老师帮看一下,哪个环节出现了问题呢.

论坛徽章:
1
ITPUB社区OCM联盟徽章
日期:2013-11-21 14:20:57
发表于 2017-4-13 17:32 | 显示全部楼层
这个应该是没有对相应的用户赋予切换到指定用户者组的权限。可以通过执行
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'yanfa1',consumer_group => 'kaifa',grant_option => FALSE);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'yanfa2',consumer_group => 'kaifa',grant_option => FALSE);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'ying1',consumer_group => 'yingyong',grant_option => FALSE);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'ying2',consumer_group => 'yingyong',grant_option => FALSE);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'ying2',consumer_group => 'yingyong',grant_option => FALSE);
或者也可以直接使用:
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'public',consumer_group => 'kaifa',grant_option => FALSE);
dbms_resource_manager_privs.grant_switch_consumer_group(grantee_name => 'public',consumer_group => 'yingyong',grant_option => FALSE);

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅~

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表