图文深入介绍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核心知识和排障案例及经验、性能调优等。

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

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

相关文章

瑞数后缀加密怎么处理

前言: 瑞数我们经常补环境通过,但是遇到瑞数后缀不知道怎么处理 就拿瑞数4来讲 解决方法: (1)传明文加密参数 一般情况,我们传明文加密参数也能访问 (2)再补环境基础调用open …

基于stm32的4G模块点灯实验

led模块功能封装 #include "led.h" #include "sys.h"//初始化GPIO函数 void led_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟__HAL_RCC_GPIOB_CLK_ENABLE();//调用GPIO初始化函数gpio_initstruct.Pin GPIO_PIN_8 | GPIO_PIN_9;gpio_inits…

排序算法 —— 直接插入排序

目录 1.直接插入排序的思想 2.直接插入排序的实现 实现分析 实现代码 3.直接插入排序的分析 时间复杂度分析 空间复杂度分析 稳定性 1.直接插入排序的思想 直接插入排序的思想就是把待排序的元素按其关键码值的大小依次插入到一个已经排好序的有序序列中&#xff0c…

pycharm调试带参数命令行的程序

点击 run configuration 点击加号,选择python name填写程序名字,script填写程序路径,下一行填写传入的参数 点击apply,再点ok,即可debug 参考: pycharm 调试模式下命令行参数的传递_pycharm debug传参 ya…

项目实战:构建 effet.js 人脸识别交互系统的实战之路

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀构建 effet.js 📒1. 什么是effet.js📜2. 为什么需要使用effet.js📝3. effet.js的功能📚4. 使用…

【项目案例】-音乐播放器-Android前端实现-Java后端实现

精品专题: 01.C语言从不挂科到高绩点 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. SpringBoot详细教程 https://blog.csdn.ne…

HTML之表单设计

1、HTML表单 HTML表单是用于收集用户输入的信息,并将用户输入的内容信息传到后台服务器中。 表单是通过form标签实现。 特别注意:如果一些内容提交后,没有将内容提交给后台服务器,那么需要添加一个name属性,语法&am…

NC 单据模板自定义项 设置参照(自定义参照)

NC 单据模板自定义项 设置参照(自定义参照) 如图下图,NC 单据模板自定义项 设置参照: 1、选择需要设置参照的自定义字段,选择高级属性页签,在类型设置中,数据类型选择参照信息,即bd…

【热门主题】000004 案例 Vue.js组件开发

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

JavaWeb合集11-Maven高级

十一、Maven高级 1、分模块设计与开发 为什么?将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。 分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。 实现步骤&…

RabbitMQ下载与配置

安装Erlang Erlang 下载地址如下: https://erlang.org/download/otp_versions_tree.html 安装 RabbitMQ RabbitMQ 下载地址如下: https://www.rabbitmq.com/install-windows.html 查看服务,服务已经正常启动 打开Command Prompt 输入rabb…

bash之基本运算符

一.算术运算符 vim test.sh #!/bin/basha10 b20valexpr $a $b echo "a b : $val"valexpr $a - $b echo "a - b : $val"valexpr $a \* $b echo "a * b : $val"valexpr $b / $a echo "b / a : $val"valexpr $b % $a echo "b % a …

TH-OCR:强大的光学字符识别工具与车牌识别应用

在当今数字化的时代,高效准确地识别文本和图像中的字符变得至关重要。TH-OCR(清华 OCR)作为一款优秀的光学字符识别软件,以其卓越的性能和广泛的应用场景,受到了众多用户的青睐。其中,车牌识别功能更是在交…

Discuz | 全站多国语言翻译和繁体本地转换插件 特色与介绍

Discuz全站多国语言翻译和繁体本地转换插件 特色与介绍 特殊:集成了2个开源库1.多国语言翻译 来自:github.com/xnx3/translate特色:无限使用接口 免费使用2个翻译端 带有一级和二级缓存 实现秒翻译 2.简体 繁体(台湾&#xff09…

springboot项目多个数据源配置 dblink

当项目中涉及到多个数据库连接的时候该如何处理? 在对应的配置文件,配置对应的数据库情况,不过我确实没咋测试对于事务的处理我可以后续在多做测试 配置文件中配置对应的数据源 然后再使用的时候使用这个 DS(“pd_ob”)注解。 然后又长知识…

《计算机视觉》—— 基于dlib库的人检检测

文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装(适用于Windows等操作系统)3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头,检测人脸 一、dlib库的安装 在PyCharm中&…

Vulnhub:Me-and-My-Girlfriend-1

一.环境启动/信息收集 (1)根据物理地址用nmap的主机发现功能得出IP地址 nmap -P 192.168.138.0/24 //同网段下主机发现得到IP为192.168.138.180(2)做nmap的目录扫描和端口扫描来发现其他站带以及信息 nmap -p- 192.168.138.180 …

使用CSS Flexbox创建简洁时间轴

使用CSS Flexbox创建简洁时间轴 在网页设计中,时间轴是一种常见且有效的方式来展示事件的顺序和进程。本文将介绍如何使用CSS Flexbox创建一个简洁优雅的时间轴,无需复杂的JavaScript代码。 基本HTML结构 首先,我们需要创建基本的HTML结构: html复制<div class"ti…

Ansible自动化工具

一、Ansible概述 1.1 什么是Ansible Ansible 是一个开源的自动化工具&#xff0c;用于配置管理、应用程序部署和任务自动化。它让你可以通过编写简单的 YAML 文件&#xff08;剧本&#xff0c;Playbooks&#xff09;&#xff0c;轻松管理和配置多个服务器。Ansible 的特点是无…

第十七周:机器学习笔记

第十七周周报 摘要Abstratc一、机器学习——生成式对抗网络&#xff08;Generative Adversarial Networks | GAN&#xff09;——&#xff08;中&#xff09;1. GAN 的理论介绍2. 用JS散度训练存在的问题3. WGAN 算法4. 拓展——流体 总结 摘要 本周周报主要对GAN进行了详细的…