oracle 资源管理器的使用

news2025/5/19 19:56:23

14.8.2资源管理器的使用
资源管理器控制CPU资源使用说明:
 第一种分配方法:EMPHASIS CPU 分配方法确定在资源计划中对不同使用者组中的会话的重视程度。CPU占用率的分配级别为从1 到8,级别1 的优先级最高。百分比指定如何将CPU 资源分配给每一级中的各个使用者组。
以下规则适用于EMPHASIS 资源分配方法:
CPU 资源在给定级别按指定的百分比分配。为资源使用者组指定的CPU 百分比是该使用者组在给定级别可以使用的最大值。
给定级别上没有使用的使用者资源可供下一级别的使用者组使用。例如,如果级别1的使用者组只使用了60% 的可用资源,则其余的40% 可供级别2 的使用者组使用。
任何给定级别的百分比总和必须小于等于100。
对于没有明确指定计划指令的所有级别,其所有子计划或使用者组的默认资源是0%。EMPHASIS 资源分配方法避免了资源缺乏问题,该问题导致优先级较低的使用者没有运行的机会。
第二种分配方法:RATIO 策略是一个单级别CPU 分配方法。将指定要为使用者组分配的CPU 比率相对应的数字,而不是百分比。例如,假定有三个使用者组OLTP_USERS、DSS_USERS 和BATCH_USERS,可以指定下列比率:
OLTP_USERS:4;
DSS_USERS:3;
BATCH_USERS:2;
OTHER:1。
这就类似于让OLTP 用户获得40% 的资源、DSS 用户获得30% 的资源、批用户获得20%的资源、所有其它使用者组获得10% 的可用资源。如果OTHER 或DSS_USERS 使用者组中当前都没有使用者在使用CPU 资源,则OLTP_USERS 使用者组将获得三分之二的可用资源,而BATCH_USERS 使用者组将获得三分之一。
最大估计执行时间:
(1)数据库资源管理器可以预先估计操作的执行时间。
(2)可以在资源使用者组级别为操作指定最大估计执行时间。
(3) 如果估计时间超过MAX_EST_EXEC_TIME,则操作不会启动。
(4)此功能的好处是消除了使用过多系统资源的异常大的作业。
(5) 默认值为UNLIMITED。
通过设置资源计划指令的MAX_EST_EXEC_TIME 参数,可以定义任何给定时间发生的任何操作的最大估计执行时间。设置了此参数后,数据库资源管理器将估计特定作业消耗的时间。如果操作的估计时间超过MAX_EST_EXEC_TIME,则不启动操作并发出ORA-07455 错误。这样可以消除占用过多系统资源的任何异常大的作业。
如果有多个计划指令引用了某个资源使用者组,则该组可能有多个MAX_EST_EXEC_TIME。数据库资源管理器将选择所有传入值中限制性最强的那个值。
使用基于成本的优化程序的统计信息,可以计算出给定语句的估计执行时间。
并行度的设置:
PARALLEL_DEGREE_LIMIT_MTH 限制任何操作的最大并行度。只能为资源使用者组,而不能为子计划指定此方法。ABSOLUTE 方法是可能值,该方法指定可以为一个操作分配的进程数量。如果有多个计划指令引用了相同的子计划或使用者组,则使用所有可能值中的最小值作为该子计划或使用者组的并行度限制。
活动会话池的设置:
ACTIVE_SESS_POOL_MTH 限制活动会话的数量。所有其它会话均为非活动的,在队列中等待激活。ACTIVE_SESS_POOL_ABSOLUTE 是默认且唯一的可用方法。
使用活动会话池功能,可以控制每个资源使用者组的最大并发活动会话数。使用此功能,由于资源的消耗与活动会话的数量成比例,所以DBA 能间接控制任何资源使用者组使用的资源量。使用活动会话池有助于减少从系统中获取资源的服务器数量,因而可以避免由于试图同时运行过多作业而导致的低效的分页、交换和其它资源损耗(如内存)。使用活动会话填充活动会话池后,资源管理器对尝试成为活动会话的所有后续会话进行排队,直到其它活动会话完成或成为不活动会话。活动会话是事务处理、查询或并行操作中当前涉及的会话。单独的并行从属进程不被视为会话;而将整个并行操作视为一个活动会话。每个资源使用者组只有一个队列,排队方法是先进先出(FIFO),并带有超时。队列采用内存结构,不能直接查询。

14.8.3资源管理器的组成

数据库环境中,一定会存在同时有多个用户对数据库进行作业的情况,而这些需求要执行的作业所耗费的时间与优先级必定不同,因此,就可利用数据库资源管理根据各用户会话的需求与应用属性分成不同的组,然后依照不同需求与应用属性组,分配不同的数据库系统资源,这样就可以将有限的资源做最大的利用。数据库资源管理的组成要素包括以下三点:
(1)资源使用者组(Resource Consumer Group):一个资源使用组由一组具有相似请求的用户组成,一个组可以包含许多用户,一个用户又可以是多个组的成员(这个很重要),实际中多个 session 使用一个用户名访问数据库是很普遍的,但是同一时刻,每个 session 只能有一个组作为这个 session 的有效使用者组。
当新创建一个 session 时,Oracle 会根据你的设定自动把它分配到某个组(初始化组)。如果以某个用户登录的 session,它的用户名是属于多个组的,数据库管理员可以手动的切换这个 session 所属的组。
下面三类特别的组是系统定义的组,它们不能被修改或删除。
SYS_GROUP:属于Oracle数据库系统管理员SYS与SYSTEM用户的资源使用者组。
DEFAULT_CONSUMER_GROUP:如果有用户没有指定到用户组,则该用户属于DEFAULT_CONSUMER_GROUP。
OTHER_GROUP:在资源计划里除了指定组以外的用户都默认在这个组里需要强调的一点是 OTHER_GROUPS,它是绑定在资源计划中的,所有资源计划必须要包括

(2)资源计划指令(Resource Plan Directive):是使用资源的条件,如分配给某个特定的资源使用者组,使其在某个特定的时段可使用80%的CPU,或是限制某个使用者组活动会话的数量等,而资源指令只是被包含在资源计划中,资源计划和指令间有着一对多的关系,在资源计划中不能包含两条相同的指令。
(3)资源计划(Resource Plan):包含一系列指令,这些指令决定了每个使用者组的资源使用分配,在一个数据库中,同一段时间内只能启用一个资源计划,但一个资源计划还可以包含多个子资源计划,每个资源计划都必须包含给OTHER_GROUP分配的指令。
资源计划是 Oracle 把数据库资源按一定方法来分配,可以限制每个组占用资源的比例。在一个数据库中同一时间只能有一个资源计划 active,也可以无任何资源计划 active。
查看当前被激活的资源计划的三个办法:
第一重方式查看参数,代码如下:
show resoure_manager_plan ;
第二种方式是命令方式,代码如下:
select name,is_top_plan from v$rsrc_plan;
第三种方式是是通过 OEM 查看资源管理信息
资源计划指令:Resource plan directives
资源计划指令就是给出各种限定的条件,例如给某个组分配一定百分比的 CPU 时间,或者限制一个组内最大活动的会话数等等。
以上就是数据库资源管理的三个组成要素。如应用在实际的例子上,假设有一套数据库系统必须执行联机事务处理系统(Online Transaction Processing,OLTP)与报表系统,但由于上班时间的事务量比较大,因此,可将70%的资源使用分配给OLTP应用,而报表系统可分配20%的使用资源,剩下的10%就分配给其他没有在资源计划内的组所使用。

14.8.4资源管理常用数据字典

显示数据库的计划和状态,代码如下:

select from dba_rsrc_plans;

执行后如图14-12所示。
在这里插入图片描述

图14-12查询计划的名称和状态

显示计划指令,代码如下:
select * from dba_rsrc_plan_directives

执行后如图14-13所示。
在这里插入图片描述

图14-13查询计划指令

显示连接的会话,代码如下:
select * from v$session
执行后如图14-14所示。
在这里插入图片描述

图14-14查询连接的会话

显示当前活动的计划,代码如下:
select * from v$rsrc_plan
执行后如图14-15所示。

在这里插入图片描述

图14-15查询当前活动的计划

【例14-3】 建立TIM、MIKE、MGR三个用户并授予连接数据库的权限,然后建立两个使用组。将三个用户定位到相应的自建组中。

建三个用户,并授予 connect 角色,代码如下:
create user tim identified by tim;

create user mike identified by mike;

create user mgr identified by mgr;

grant connect to tim identified by tim;
grant connect to mike identified by mike;
grant connect to mgr identified by mgr;2)

使用OEM建立两个使用者组:
以sys用户登录,找到EM菜单下Consumer Groups ,建 OLTP 组、DSS 组,把新建的三个用户指定到两个自建的组中,使用 OEM 完成把TIM、MIKE用户添加到OLTP 组,把TIM、MIKE户添加到DSS 组
建组结束前可以单击 Show SQL 研究一下输出,注意挂起区域的用法,单击 Enter 返回。
设置初始使用者组
缺省方式建立的用户会定位到 DEFAULT_CONSUMER_GROUP 组下。查询用户的组代码下:
SQL> select username,INITIAL_RSRC_CONSUMER_GROUP from dba_users;

执行后如图14-16所示。
在这里插入图片描述

.
图14-16查询当前用户属于的组

将 TIM、MIKE、MGR 这三个用户定位到相应的自建组中,session 登录后便直接属于对应的自建组,代码如下:

exec dbms_resource_manager.set_initial_consumer_group(‘TIM’,‘OLTP’);
exec dbms_resource_manager.set_initial_consumer_group(‘MIKE’,‘DSS’);
exec dbms_resource_manager.set_initial_consumer_group(‘MGR’,‘OLTP’);

14.8.5其他资源指令和阀值
(1)活动会话池
目的是限制一组同时运行的 SESSION 数量,假设 DSS 组有 8 个用户,如果就让 3 个可以运行(active session)。可将该组最大激活数设为 3,那么另外的 5 个可以连接上来,但要排队等着激活。而排队也可设延迟时间,超时后就会报错。
(2)限制并行度
Oracle 可通过参数设置并行度,如:parallel_max_servers(创建一个并行执行服务器池),但是无法阻止任何人使用它,于是可以通过 Resource Management 加以限制。
(3)通过执行时间控制作业
数据库中一个大型作业会挤掉其他用户性能,Threshold 指令可以解决这个问题。到了时间阀值,按 action 的规定去做。
依据空闲时间终止 session。不做任何事情的 session 浪费服务器资源,如 PGA 白白占用,idle time 指令从两个方面限制这样的情况,比如某组的 max idle time(秒)=1800,表示空闲了 3 分钟,block another session(秒)=30,表示把别人锁了 30 秒,这两种情况都会终止该 session。
(4)限制 undo 数据的产生
某些用户的大型事务可能填满 undo 表空间,如批处理事务不定期的提交,为了安全起见,可以对这里潜在的用户设置 undo 表空间使用上限,比如某组其 undo pool 设置为 6G,当到达这个上限值后该组中的所有 session 都会被挂起,直至事务提交后释放池中的空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2379502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现

贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现 目录 贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现效果一览基本介绍程序设计参考资料…

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步: 一篇就够!Windows上Docker Desktop安装 汉化完整指…

一个stm32工程从底层上都需要由哪些文件构成

原文链接:https://kashima19960.github.io/2025/05/17/stm32/一个stm32工程从底层上都需要由哪些文件构成/ 前言 我最近因为做课设要用到stm32,所以去找了一些开源的stm32工程来看看,然后发现现在新版的keil mdk对于环境的配置跟以前 相比发…

[Mac] 开发环境部署工具ServBay 1.12.2

[Mac] 开发环境部署工具ServBay 链接:https://pan.xunlei.com/s/VOQS0LDsC_J6XU4p-R6voF6YA1?pwdnbyg# 非常给力的本地 Web 开发/测试环境工具:ServBay。之前我们本地搭个 PHP MySQL Nginx 环境,或者搞个 PHP web 环境啥的,不…

商城小程序源码介绍

今天要为大家介绍一款基于ThinkPHP、FastAdmin以及UniApp开发的商城小程序源码,这款源码在设计和功能上都有不俗的表现,非常适合想要搭建线上商城的开发者。 该源码采用了ThinkPHP作为后端框架,利用其强大的性能和灵活性,保障了系…

科技项目验收测试对软件产品和企业分别有哪些好处?

科技项目验收测试是指在项目的开发周期结束后,针对项目成果进行的一系列验证和确认活动。其目的是确保终交付的产品或系统符合预先设定的需求和标准。验收测试通常包括功能测试、性能测试、安全测试等多个方面,帮助企业评估软件在实际应用中的表现。 科…

汽车零部件冲压车间MES一体机解决方案

在当前制造业升级的大背景下,提升生产效率、实现精细化管理已成为企业竞争力的关键。特别是在汽车零部件制造领域,冲压车间作为生产流程中的重要一环,其生产数据的实时采集与分析对于确保产品质量、优化生产节拍、降低运营成本至关重要。今天…

hysAnalyser 从MPEG-TS导出ES功能说明

摘要 hysAnalyser 是一款特色的 MPEG-TS 数据分析工具。本文主要介绍了 hysAnalyser 从MPEG-TS 中导出选定的 ES 或 PES 功能(版本v1.0.003),以便用户知悉和掌握这些功能,帮助分析和解决各种遇到ES或PES相关的实际问题。hysAnalyser 支持主流的MP1/MP2/…

家里wifi不能上网或莫名跳转到赌博及色情网站就是域名被劫持、DNS被污染了

文章目录 定义上网过程域名被劫持可能阶段案例排查工具 解决方法清除系统DNS缓存查看DNS缓存清除DNS缓存 登录路由器,设置DNS可用的DNS地址: 找网络运营商报警 定义 DNS(Domain Name System,域名系统)劫持&#xff0c…

基于SSM实现的健身房系统功能实现十六

一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升,健身行业也在迅速扩展。越来越多的人加入到健身行列,健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂,传统的手工或部分自动化的管…

【Java微服务组件】分布式协调P1-数据共享中心简单设计与实现

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言设计一个共享数据中心选择数据模型键值对设计 数据可靠性设计持久化快照 &#xff08…

cursor/vscode启动项目connect ETIMEDOUT 127.0.0.1:xx

现象: 上午正常使用cursor/vscode,因为需要写前端安装了nodejs16.20和vue2,结果下午启动前端服务无法访问,浏览器一直转圈。接着测试运行最简单的flask服务,vscode报错connect ETIMEDOUT 127.0.0.1:xx,要么…

兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统

作者:Fei Lin 1 ^{1} 1, Yonglin Tian 2 ^{2} 2, Tengchao Zhang 1 ^{1} 1, Jun Huang 1 ^{1} 1, Sangtian Guan 1 ^{1} 1, and Fei-Yue Wang 2 , 1 ^{2,1} 2,1单位: 1 ^{1} 1澳门科技大学创新工程学院工程科学系, 2 ^{2} 2中科院自动化研究所…

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤 2025/5/15 19:55 百度:intel 集成显卡 NVIDIA 配置成为 总是用独立显卡 百度为您找到以下结果 ?要将Intel集成显卡和NVIDIA独立显卡配置为总是使用独立显卡,可以通过以下步骤实现?&#xff…

sparkSQL读入csv文件写入mysql

思路 示例 (年龄>18改成>20) mysql的字符集问题 把user改成person “让字符集认识中文”

大涡模拟实战:从区域尺度到街区尺度的大气环境模拟

前言: 随着低空经济的蓬勃发展,无人机、空中出租车等新型交通工具正在重塑我们的城市空间。这场静默的革命不仅带来了经济机遇,更对城市大气环境提出了全新挑战。在距离地面200米以下的城市冠层中,建筑物与大气的复杂相互作用、人…

单目测距和双目测距 bev 3D车道线

单目视觉测距原理 单目视觉测距有两种方式。 第一种,是通过深度神经网络来预测深度,这需要大量的训练数据。训练后的单目视觉摄像头可以认识道路上最典型的参与者——人、汽车、卡车、摩托车,或是其他障碍物(雪糕桶之类&#xf…

Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包

知识点: 1、安全开发-JavaEE-WAR&JAR打包&反编译 2、安全开发-JavaEE-SnakeYaml反序列化&链 一、演示案例-WEB开发-JavaEE-项目-SnakeYaml序列化 常见的创建的序列化和反序列化协议 • (已讲)JAVA内置的writeObject()/readObje…

项目复习(2)

第四天 高并发优化 前端每隔15秒就发起一次请求,将播放记录写入数据库。 但问题是,提交播放记录的业务太复杂了,其中涉及到大量的数据库操作:在并发较高的情况下,会给数据库带来非常大的压力 使用Redis合并写请求 一…

UE 材质基础 第一天

课程:虚幻引擎【UE5】材质宝典【初学者材质基础入门系列】-北冥没有鱼啊_-稍后再看-哔哩哔哩视频 随便记录一些 黑色是0到负无穷,白色是1到无穷 各向异性 有点类似于高光,可以配合切线来使用,R G B 相当于 X Y Z轴,切…