图文深入介绍oracle资源管理(续)

1. 引言:

本文将承接上篇继续深入介绍oracle资源管理。本文重点介绍如何使用oracle资源管理器管理好DB。

2. 资源管理器:

可以使用图形界面 OEM$或命令行调用 DBMS RESOURCE MANAGER 程序包的过程进行数据库资源管理。
调用资源管理器的先决条件:要具有的权限,包括 ADMINISTER RESOURCE MANAGER 系统权限,以及程序包 DBMS RESOURCE MANAGER、DBMS RESOURCE MANAGER PRIVS 的执行权限。

3. 资源管理器分配资源的方式:

  1. CPU 使用率:可以指定在使用者组和子计划之间如何分配 CPU 资源。
  2. 并行度限制:可以控制使用者组中任何操作的最大并行度。
  3. 设置活动会话池,可以限制使用者组或子计划的并发活动会话数。如果某个组的会话数超过了允许的最大值,则新的会话将加入队列等待,还能指定时间限制,超限制会话将退出并返回错误。
  4. 设置 Undo 池,限制 UNDO 空间使用:可以控制使用者组或子计划能够生成的 UNDO 操作占用空间总量。当 UNDO 空间总数超过UNDO_POOL指定的数量时,在同组中其他会话释放UNDO 空间或者增大使用者组的UNDO 限额前,不允许执行任何新的 INSERT、UPDATE 或 DELETE 命令。若使用者组执行 DML 语句超限额,将中止操作并返回错误,此时仍可查询。
  5. 执行时间限制,可指定操作允许的最大执行时间。Oracle DB 使用基于成本的优化程序统计信息估计操作所需时间,如果耗时超过了所允许的最大时间(MAX_EST_EXEC_TIME),则操作返回错误并且不会启动。
    6.空闲时间限制:可以指定会话的空闲时间(MAX_IDLE_TIME),超过改时间后将终止会话。还可以进一步设置MAX_IDLE_TIME_BLOCKER,只终止阻止了其它会话的空闲会话。
    7.使用者组切换:初始使用者组是在会话刚登录时所属的组。顶层调用是指调用整个PL/SQL块的调用,客户机单独发出的SQL语句视为单独调用。在使用中间层服务器实施会话共享的三层应用模型中,中间层在为某个最终用户完成执行一个调用后,可使用相同的会话为另一个最终用户执行调用。因此,用户作业的分界线为每个调用,可以创建计划指令,控制切换调用的使用者组,调配使用的系统资源。
    8.数据库合并:使用资源管理器,可以优化资源在并发数据库会话之间的分配。数据库合并要求应用程序之间彼此孤立。当一个应用程序的工作量增加时,这种增加不应影响其他应用程序。
    9.服务器合并:可以通过在服务器上运行多个数据库实例来更充分地利用资源。在运行多个数据库实例的多CPU服务器上管理CPU分配的方法叫做“实例限制”(instance caging)。下图是默认的资源计划:
    在这里插入图片描述
    DEFAULT PLAN 是内置的默认资源计划之一,可用作新计划的模板,它包含下列使用者组:
    –SYS_GROUP:SYS 和 SYSTEM 用户的初始使用者组。
    –OTHER GROUPS:用于在资源计划之外的所有使用者组的会话。任何活动计划中都必须包含对 OTHER GROUPS 的计划指令。
    –ORA A U T O T A S K S U B P L A N :在此计划中优先级低于 S Y S G R O U P 和 O T H E R G R O U P S − − O R A AUTOTASK SUB PLAN:在此计划中优先级低于 SYS GROUP 和 OTHER GROUPS --ORA AUTOTASKSUBPLAN:在此计划中优先级低于SYSGROUPOTHERGROUPSORADIAGNOSTICS:在此计划中优先级与 ORA A U T O T A S K S U B P L A N 。 O R A AUTOTASK SUB PLAN 。 ORA AUTOTASKSUBPLANORA组的优先级低可防止自动维护工作消耗过多的系统资源。
    –用户的初始使用者组是该用户创建的任何会话最初所属的使用者组。如果没有为用户设置初始使用者组,则 DEFAULT CONSUMER GROUP 将自动成为用户的初始使用者组。

4. Oracle DB资源管理工作流程

Oracle DB资源管理工作流程前一篇博文已经有所介绍,本篇在完善下。Oracle DB 资源管理的工作流程主要包括以下几个步骤:

  1. 规划与设计
    确定业务需求:首先,需要了解企业的业务需求和数据库使用模式。确定哪些用户、应用程序或作业需要特殊的资源分配,以及不同业务的优先级和重要性。
    定义资源消费者组:根据业务需求,创建不同的资源消费者组。每个资源消费者组代表一类具有相似资源需求的用户或作业。例如,可以创建高优先级用户组、普通用户组和后台作业组等。
    设计资源计划:设计资源计划,确定如何将系统资源分配给不同的资源消费者组。资源计划可以包括多个层级,每个层级可以包含不同的资源分配策略和限制。
  2. 配置资源管理
    创建资源消费者组:使用 Oracle Enterprise Manager 或 SQL 语句创建资源消费者组。可以为每个资源消费者组指定名称、描述和成员资格条件。
    配置资源计划:使用 Oracle Enterprise Manager 或 SQL 语句配置资源计划。可以为资源计划指定名称、描述和资源分配策略。可以设置不同资源(如 CPU、内存、I/O 等)的分配比例、绝对限制或优先级。
    分配资源消费者组到资源计划:将资源消费者组分配到资源计划中的特定层级。可以根据业务需求和优先级,将不同的资源消费者组分配到不同的资源分配策略中。
    设置指令和谓词:可以设置指令和谓词来进一步控制资源分配。指令可以指定在特定条件下如何分配资源,而谓词可以根据用户、会话或作业的属性将其分配到特定的资源消费者组。
  3. 运行时资源管理
    用户连接和会话启动:当用户连接到数据库时,Oracle 根据用户的属性和资源消费者组的成员资格条件,将用户的会话分配到相应的资源消费者组。
    资源请求和分配:当用户的会话执行 SQL 语句或其他数据库操作时,Oracle 根据资源计划和资源消费者组的配置,为该会话分配相应的资源。例如,如果用户属于高优先级资源消费者组,那么在资源竞争时,该用户的会话将获得更多的 CPU 时间和内存资源。
    资源监控和调整:Oracle 会持续监控系统资源的使用情况和负载情况。如果发现资源分配不合理或系统负载过高,可以通过调整资源计划、资源消费者组的配置或添加新的资源来优化资源管理。可以使用 Oracle Enterprise Manager 或 SQL 语句进行实时监控和调整。
  4. 审计和报告
    资源使用审计:Oracle 可以记录资源的使用情况,包括每个资源消费者组的资源使用量、每个会话的资源使用情况以及资源分配的历史记录。可以使用 Oracle Enterprise Manager 或 SQL 语句查询和分析这些审计信息,以了解资源的使用情况和优化资源管理。
    性能报告:Oracle 可以生成性能报告,显示系统资源的使用情况、负载情况以及资源管理的效果。可以使用 Oracle Enterprise Manager 或 SQL 语句生成这些报告,以帮助管理员评估资源管理的性能和效果,并进行进一步的优化。

5.资源分配常用参数

  1. 资源分配常用参数主要核心参数有以下几个:
    在这里插入图片描述
  2. EMPHASIS和RATIO的比较:
    在这里插入图片描述
    “EMPHASIS”(强调)和 “RATIO”(比例)是两种不同的资源分配方式,两者的区别在于:
  3. 定义与概念
    EMPHASIS:
    EMPHASIS 是一种资源分配方式,它通过为不同的资源消费者组设置不同的强调级别来分配资源。强调级别可以是 LOW、MEDIUM 或 HIGH。
    例如,一个资源计划中可以将某些关键任务的资源消费者组设置为 HIGH EMPHASIS,以确保在资源竞争时这些组能够获得更多的资源。
    RATIO:
    RATIO 是通过为不同的资源消费者组分配特定的资源比例来进行资源分配。比例可以是整数或小数,表示该组在总资源中所占的份额。例如,一个资源计划中可以将资源分配为三个组,比例分别为 50:30:20,表示第一个组获得 50% 的资源,第二个组获得 30% 的资源,第三个组获得 20% 的资源。
  4. 资源分配方式
    EMPHASIS:
    强调级别决定了资源分配的优先级。高强调级别的组在资源竞争时更有可能获得更多的资源,但并不保证具体的资源数量。
    它更适用于对某些关键任务或高优先级任务进行灵活的资源分配,以确保在紧急情况下这些任务能够得到更多的资源支持。
    RATIO:
    比例分配方式明确规定了每个资源消费者组能够获得的资源份额。这种方式更加固定和可预测,能够确保每个组在不同的负载情况下都能获得相对稳定的资源量。适用于需要明确资源分配比例的场景,例如不同部门或业务线之间的资源分配。
  5. 灵活性与可预测性
    EMPHASIS:
    灵活性较高。在不同的负载情况下,资源的分配可以根据强调级别动态调整,以适应变化的需求。但是,由于强调级别不直接对应具体的资源数量,因此资源分配的结果可能不太容易预测。
    RATIO:
    可预测性较高。资源分配比例是固定的,因此在不同的负载情况下,每个组能够获得的资源量相对稳定,可以更好地进行资源规划和预测。但是,灵活性相对较低,在面对突发情况或特殊需求时,可能需要手动调整资源比例。
  6. 管理与维护
    EMPHASIS:
    管理相对复杂。需要根据业务需求和优先级不断调整强调级别,以确保资源分配的合理性。同时,由于强调级别不直接对应具体的资源数量,可能需要进行更多的监控和调整。
    RATIO:
    管理相对简单。一旦确定了资源分配比例,就可以相对稳定地进行资源管理。但是,在业务需求发生变化时,可能需要重新评估和调整资源比例。

本篇结束,其实涉及到oracle资源管理的内容还是挺多的,尤其是实际操作实践,大家可以多做实验,有问题咱们共同探讨。

6. Oracle DB资源管理相关的视图

在这里插入图片描述

  1. DBA_RSRC_PLANS
    这个视图显示了数据库中的资源计划以及它们的当前状态。资源计划定义了如何在不同的资源消费者组之间分配系统资源。通过这个视图,可以查看资源计划的名称、状态、注释等信息,帮助管理员了解当前系统中资源分配的策略。
  2. DBA_RSRC_PLAN_DIRECTIVES
    该视图展示了资源计划中的指令。指令用于进一步细化资源分配规则,例如可以指定特定资源消费者组在特定条件下的资源分配方式。可以查看指令所关联的资源计划、资源消费者组、资源分配方式等详细信息。
  3. DBA_RSRC_CONSUMER_GROUPS
    此视图列出了数据库中的资源消费者组。资源消费者组是一组具有相似资源需求的用户或会话。可以查看资源消费者组的名称、注释、状态等信息,帮助管理员了解系统中不同资源消费者组的定义和用途。
  4. DBA_RSRC_CONSUMER_GROUP_PRIVS
    这个视图显示了用户或角色对资源消费者组的权限。可以查看哪些用户或角色被授予了对特定资源消费者组的访问权限,以及这些权限的类型(例如,SELECT、INSERT 等)。帮助管理员管理资源消费者组的权限分配,确保只有授权的用户或角色能够访问特定的资源消费者组。
  5. DBA_RSRC_GROUP_MAPPINGS
    该视图展示了资源消费者组的映射关系。可以查看哪些用户、会话或其他实体被映射到特定的资源消费者组。帮助管理员了解资源消费者组的成员构成,以便更好地管理资源分配。
  6. DBA_RSRC_MAPPING_PRIORITY
    此视图显示了资源映射的优先级。在多个映射规则存在的情况下,优先级决定了哪个映射规则将被优先应用。可以查看不同映射的优先级值,帮助管理员调整资源映射的顺序,以满足特定的业务需求。
  7. DBA_USERS 中的 initial_rsrc_consumer_group 列
    在 DBA_USERS 视图中,initial_rsrc_consumer_group 列指定了用户在创建会话时默认所属的资源消费者组。管理员可以通过设置这个列的值,为不同的用户分配不同的资源消费者组,从而实现基于用户的资源管理。
  8. DBA_RSRC_MANAGER_SYSTEM_PRIVS
    这个视图显示了用户或角色对资源管理器的系统权限。可以查看哪些用户或角色被授予了管理资源的权限,例如创建资源计划、修改资源消费者组等。帮助管理员管理资源管理器的权限分配,确保只有授权的用户或角色能够进行资源管理操作。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB核心知识和排障案例及经验、性能调优等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Android】浅析OkHttp(1)

【Android】浅析OkHttp(1) OkHttp 是一个高效、轻量级的 HTTP 客户端库,主要用于 Android 和 Java 应用开发。它不仅支持同步和异步的 HTTP 请求,还支持许多高级功能,如连接池、透明的 GZIP 压缩、响应缓存、WebSocke…

大模型~合集13

我自己的原文哦~ https://blog.51cto.com/whaosoft/12302606 #TextRCNN、TextCNN、RNN 小小搬运工周末也要学习一下~~虽然和世界没关 但还是地铁上看书吧, 大老勿怪 今天来说一下 文本分类必备经典模型 模型 SOTA!模型资源站收录情况 模型来源论文 RAE ​​ht…

STM32外设应用技术博文:基于UART的温度传感器数据采集

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

深入理解Redis锁与Backoff重试机制在Go中的实现

文章目录 流程图Redis锁的深入实现Backoff重试策略的深入探讨结合Redis锁与Backoff策略的高级应用具体实现结论 在构建分布式系统时,确保数据的一致性和操作的原子性是至关重要的。Redis锁作为一种高效且广泛使用的分布式锁机制,能够帮助我们在多进程或分…

构建高效在线考试平台:Spring Boot与JavaWeb的融合

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于JavaWeb技术的在线考试系统设计与实现…

汽车零部件行业CRM应用数字化解决方案解析

1.行业背景与挑战分析 近年来,随着国家对新能源汽车行业的大力支持,国内汽车产业不仅在国内市场实现了弯道超车,而且新能源汽车的海外出口也开拓了新的市场,为自主品牌的新能源战略贡献了新的增长点;这一迅猛发展的趋…

Pollard‘s p-1算法

概述 光滑数 (Smooth number):指可以分解为多个小素数乘积的正整数 当p是N 的因数,并且p−1是光滑数,可以考虑使用Pollards p-1算法来分解N 当p是N的因数,并且p1是光滑数,可以考虑使用Williamss p1算法来分解N 这里…

打造卓越APP体验:13款界面设计软件推荐

你知道如何选择正确的UI设计软件吗?你知道设计美观的用户界面,及带来良好用户体验的APP,需要什么界面设计软件吗?基于APP界面的功能不同,选择的APP界面设计软件也会有所不同。然而,并不是要把所有APP界面设…

权限(补充)

在上一篇Linux权限(想了解的可以点击看看哦)中已经见识了一部分权限,但是少了很重要的一部分: 那就是用户之间的转换,文件读写的关系,这里就简单的介绍一些; 我们在Linux权限知道了目录权限的关…

无人机之放电速率篇

无人机的放电速率是指电池在一定时间内放出其储存电能的能力,这一参数对无人机的飞行时间、性能以及安全性都有重要影响。 一、放电速率的表示方法 放电速率通常用C数来表示。C数越大,表示放电速率越快。例如,一个2C的电池可以在1/2小时内放…

屏蔽小米电视广告的方法

小米电视那个广告,太多,时间太长,影响观看感受,经过处理,成功屏蔽了小米电视的广告,提升了观影体验。 手动添加AD域名到 hosts 列表 小米(红米)电视关闭开机AD屏蔽hosts方法。 在路由器的hosts中配置。 …

Redis --- 第四讲 --- 常用数据结构 --- Hash、List

一、Hash哈希类型的基本介绍。 哈希表:之前学过的所有数据结构中,最最重要的。 1、日常开发中,出场频率非常高。 2、面试中,非常重要的考点。 Redis自身已经是键值对结构了。Redis自身的键值对就是通过哈希的方式来组织的。把…

12月17-19日 | 2024南京软博会,持续升级中!

2024中国(南京)软件产业博览会(简称“南京软博会”)自2005年以来,已连续举办19年,集新品发布、产品交易、人才交流、项目对接等功能为一体,成为全国软件产业品牌展会和对外窗口。 今年是南京软…

ubuntu 安装keepalived+haproxy

一、安装keepalived sudo apt update sudo apt install keepalived sudo systemctl start keepalived sudo systemctl enable keepalived sudo systemctl status keepalived#配置Keepalived sudo cp /etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf …

informer学习笔记

一、informer讲解 infomer 要解决的三大问题: Attention计算的更快Decoder要一次性输出所有预测堆叠encoder也要更快 1. Attention 在长序列中,并非每一个位置的Attention都重要,对于每一个Q来说,只有一小部分的K与其有较强的…

java互联网医院智能导诊系统源码,Uniapp前端开发框架,支持一次编写,多端运行

智慧导诊系统源码,java源码,大屏机自动导诊,互联网医院智能导诊系统源码 老是全身无力,挂什么科? 经常头痛,挂什么科? 总是失眠,又得挂哪个科? 世界上最遥远的距离再加…

企业内训|LLM大模型技术在金融领域的应用及实践-某商业银行分行IT团队

本企业培训是TsingtaoAI技术团队专们为某商业银行分行IT团队开发的LLM大模型技术课程。课程深入分析大模型在金融行业中的发展趋势、底层技术及应用场景,重点提升学员在大模型应用中的实际操作能力与业务场景适应力。通过对全球商用 LLM 产品及国内外技术生态的深度…

每天五分钟深度学习框架pytorch:基于pytorch搭建多变量回归模型

本文重点 前面我们学习了基于pytorch搭建多项式回归模型,我们也知道了它和多变量回归模型的区别,本文我们使用pytorch搭建多变量回归模型 模型搭建 class Multivariable_Regression(nn.Module):def __init__(self):super(Multivariable_Regression,self).__init__()self.po…

基于PHP+MySQL+Vue的网上订餐系统

摘要 本文介绍了一个基于PHPMySQLVue技术的网上订餐系统。该系统旨在为用户提供便捷的在线订餐服务,同时提高餐厅的运营效率。系统后端采用PHP语言开发,利用MySQL数据库进行数据存储与管理,实现了用户注册登录、菜品浏览、购物车管理、订单提…

hi3798mv100 linux 移植

# Linux开发环境搭建 ## uboot编译 1. 必须先安装gcc,要不然make 等命令无法使用 2. 配置arm 交叉编译链 # gcc sudo apt-get install gcc-9 gcc -v# 安装 Linaro gcc-arm-linux-gnueabihf,注意不是arm-linux-gnueabihf-gcc sudo apt-get install ar…