设为首页 收藏本站
查看: 1307|回复: 0

[经验分享] Oracle数据库资源管理器(Database Resource Manager)

[复制链接]

尚未签到

发表于 2016-8-3 17:32:39 | 显示全部楼层 |阅读模式
  原帖地址:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/dbrm001.htm
  
Oracle资源管理器简介

  Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源,为不同的会话分配不同的数据库资源。DBRM管理的资源主要包括CPU时间。下面分以下几个章节介绍:

  • Oracle DBRM帮你处理哪些问题
  • Oracle DBRM是怎样处理这些问题的
  • Oracle DBRM包含的内容
  • Oracle DBRM资源分配方法
  • Oracle DBRM的权限管理
  
Oracle DBRM帮你处理哪些问题
  
  当数据库服务器资源由操作系统来分配时,你可能会遇到以下问题:

  • 过多的资源开销
当服务器进程数很多时,操作系统进程和数据库服务进程间的来回切换会导致CPU占用率或内存使用率高。

 


  • 低效的调度
操作系统调度数据库服务时占用寄存器,这样做效率很低。
 

  • 资源分配的不合理
操作系统平均分配系统资源给活动的进程(对数据库进程来说),不能判断它们的优先级高低。
 

  • 不能管理数据库特有的资源,例如:并行执行的服务数和活动的会话数。
Oracle RMDB是如何解决这些问题的
  
  Oracle RMDB把硬件等资源的分配交给数据库服务器本身来解决以上问题。在某个数据库环境中,可能同时存在着多个用户请求数据库服务,并且他们所要完成的任务优先级不同,那么我们就应该区别对待这些会话请求。Oracle RMDB能让你根据各个会话的应用属性,将它们分组,然后为每组分配不同的数据库资源,最大化提高你的数据库应用性能。
  Oracle RMDB的具体功能:

  • RMDB可以在系统启动时,限制某些会话请求只分配到最少的进程资源和用户使用上限。
  • 为不同的用户或应用分配不同的CPU时间。在一个数据仓库应用中,ROLAP(relational online analytical processing)应用分配到的比例就应该比批处理任务高。
  • 限制同一组内用户对数据库操作的并行度。
  • 建立一个活动的会话池。会话池由一组用户活动会话组成,对某一组用户来说,同一时间活动的会话数有特别的数量上限。如果会话池满了,新的会话请求会被放入等待队列,而且你还可以设置一个时间上限,超过这个上限,等待队列会被停止。会话池限制了同一时间活动的会话请求数量,保证了活动的会话请求更快的完成任务。
  • 管理长时间未响应的会话或请求,这些会话或请求往往占用了很多的CPU或I/O资源。这些会话能被自动的结束掉,或者将它们换到其他低级的组去。
  • 优化器会估算请求的运行时间,如果超出了某个显示,RMDB会阻止它的请求。
  • 限制一个会话的空闲等待时间。
  • 根据不同的资源分配需求,配置不同的模式。你可以动态的改变这些模式,例如,从白天运行模式变到夜间运行模式,而不用重启数据库服务。你还可以通过Oracle调度器来管理模式的改变。详细内容请见: Chapter 26, "Oracle Scheduler Concepts"。
Oracle RDMB的组成元素
下表介绍了Oracle RDMB的组成元素。
 
元素描述
资源使用组根据会话的资源请求将它们分为一组。RDMB按组管理会话的资源分配,而不是按单个的会话。
资源计划资源计划包含一系列指令,这些指令就决定了给每个组的资源分配配置。要执行资源的分配,你只需执行相应的资源计划。
资源计划指令资源计划指令指定了资源计划和组之间的映射关系。
  
  
  
  
  
  
  
  
  
  Oracle是通过存储过程来实现这些功能的,你可以在以下包里找到这些存储过程:DBMS_RESOURCE_MANAGER.
资源使用组
      资源使用组由许多用户会话组成,这些会话有相同的资源使用请求。新创建一个会话时,RDMB会根据你的设定自动把它分配到某个组。数据库管理员还可以手动的调整某个会话所属的组。
      下面三类特别的组是系统组,它们不能被修改或删除。

  • SYS_GROUP
  • DEFAULT_CONSUMER_GROUP
  • OTHER_GROUP 
资源计划指令
     RDMB根据当前活动资源计划中的一系列资源计划指令为资源使用组分配资源。资源计划和指令间有着一对多的关系,资源计划中不能包含两条相同的指令。
     有很多种不同分配资源的指令,例如给某个组分配一定百分比的总的CPU时间,或者限制一个组内最大活动的会话数。
资源计划
     在一个数据库中同一时间只有一个资源计划起作用。一个资源计划还可以包含子资源计划。每个资源计划都必须包含给OTHER_GROUP分配支援的指令。
例子:一个简单的资源计划
     下图显示的是包含OLTP(online transaction processing)应用和报表系统数据库系统的白天的资源分配计划。
  它为OLTP应用分配75%的CPU时间,为报表系统分配15%的CPU时间,剩下的是为OTHER_GROUPS分配的。
 
DSC0000.bmp

子资源计划

       资源指令除了给组分配资源,还可以为其他资源计划分配资源,被分配资源的计划成为子计划。下图是一个包含子计划的资源计划的例子。



 

DSC0001.bmp

DBRM管理的内容

       资源分配方法指定资源分配给组或子计划的百分比。DBRM管理的资源包括以下内容:

CPU Time

Active Session Pool With Queuing

       你可以设定某组的最大活动会话数,会话池满后,新的会话会被放入等待队列。

Degree Of Parallelism Limit

限制并行运行的会话数。

Automatic Consumer Group Switching

       此功能类似于触发器机制,当某个会话满足设定的条件,它会自动被分配到其他组中去。

Cancelling SQL and Terminating Sessions

       DBRM可以取消那些长时间运行的SQL查询或会话活动。

Excution Time Limit

       DMRM可以估算某个操作的运行时间,如果超过了设定的值,数据库不会执行它。

Undo Pool

     

Idle Time Limit

      设定一个会话的最长未响应时间。

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252404-1-1.html 上篇帖子: Oracle安全数据系统架构全接触(2) 下篇帖子: 简单的oracle备份恢复批处理文件 -- 转
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表