oracle后台进程详解#进程结构
一、oracle进程结构
oracle体系结构主要有实例+数据库;
实例由内存结构(SGA+PGA+..)和进程结构(服务器进程+后台进程+..)组成;本文主要介绍进程结构
二、服务器进程
Oracle数据库创建服务器进程来处理连接到该实例的客户端进程的请求。客户端进程始终通过单独的服务器进程与数据库通信。
作用:
解析并运行通过应用程序发布的SQL语句,包括创建和执行查询计划
执行PL / SQL代码
将数据文件中的数据块读入数据库缓冲区高速缓存(DBW后台进程的任务是将修改后的块写回到磁盘)
返回结果的方式使应用程序可以处理信息
服务器进程主要有2中
(1)共享服务器进程(例如mysql)
(2)专有服务器进程 (oracle)
在专用服务器连接中,客户端连接仅与一个服务器进程关联。服务器进程在其PGA中存储特定于进程的信息和UGA。oralce就是专有服务器进程,每一个连接对应一个服务器进程
三、后台进程
1.强制后台进程
(1)进程监控进程(PMON)组
PMON 进程监控进程
检测其他后台进程的终止
执行异常终止的后台进程恢复
CLMN 清理主要进程CLMN会定期清除终止的进程,终止的会话,事务,网络连接,空闲会话,
分离的事务以及已超过其空闲超时的分离的网络连接。
CLnn 清理辅助进程CLMN将清理工作委托给CL nn协助清理进程。辅助进程的数量与要完成的清理工作量和当前的清理效率成正比。
这些进程负责监视和清除其他进程, 数据库必须确保释放已终止进程所拥有的资源,以便其他进程可以使用它们
【数据库资源隔离,PMON组可以自动隔离损坏的不可恢复的资源,以便不会立即强制终止数据库实例。PMON组继续对保存隔离资源的进程或会话执行尽可能多的清除。】
(2)进程管理器(PMAN)
PMAN监视,产生并停止以下类型的过程
1、分派器和共享服务器进程
2、数据库驻留连接池的连接代理和池化服务器进程
3、作业队列流程
4、可重启后台程序
PMAN监督几个后台进程,包括共享服务器,池化服务器和作业队列进程。
(3)监听器注册进程(LRGE)
监听器登记处理(LREG)有关数据库实例和调度程序进程与Oracle网络监听信息。
实例启动时。LREG会轮询侦听器以确定它是否正在运行。如果侦听器正在运行,则LREG会传递相关参数;反之,LREG会定期尝试与它联系。
(4)系统进程监控进程(SMON)
系统监视处理(SMON)是负责各种系统级清理职责。
1、必要时在实例启动时执行实例恢复。
2、恢复由于文件读取或表空间脱机错误而在实例恢复期间跳过的终止事务。
3、清理未使用的临时段。
4、在字典管理的表空间内合并连续的自由范围
(5)数据库写进程(DBWn)
DBW进程将数据库缓冲区高速缓存中的已修改缓冲区写入磁盘。(数据量大时会增加进程数DBW0~DBW99)。
在以下情况下,DBW进程将脏缓冲区写入磁盘:
1、当服务器进程在扫描阈值数量的缓冲区后无法找到干净的可重用缓冲区时,它会向DBW发出写信号。
2、DBW定期写入缓冲区以推进检查点,检查点是重做线程中从其开始实例恢复的位置。
(6)日志写入进程(LGWR)
如果无法访问日志文件,则LGWR继续写入组中的其他文件,并将错误写入LGWR跟踪文件和警报日志。如果组中的所有文件都已损坏,或者该组由于尚未归档而无法使用,则LGWR无法继续运行
日志写进程(LGWR)管理联机重做日志缓冲区。
在以下情况下,LGWR将自上次写入以来已复制到缓冲区的所有重做条目写入:
1、用户提交交易。
2、发生联机重做日志切换。
3、自LGWR上次写信以来已经过去了三秒钟。
4、重做日志缓冲区已满三分之一,或包含1 MB的缓冲数据。
5、DBW必须将修改后的缓冲区写入磁盘。
DBWn可以写入脏缓冲区之前,数据库必须将与更改缓冲区相关联的重做记录写入磁盘(预写协议)。如果DBW发现某些重做记录尚未写入,他将通知LGWR将记录写入磁盘,并等待LGWR完成,然后再讲数据缓冲区写入磁盘。
(7)检查点进程(CKPT)
检查点进程(CKPT)更新控制文件和数据文件头与检查点信息和DBW到写入块到磁盘的信号。
检查点信息包括检查点位置,SCN和联机重做日志中开始恢复的位置。
(8)管理信息的采集进程组(MMON)(MMNL)
MMON 管理监控进程
管理监控进程(MMON)执行相关的许多任务自动工作负载(AWR)
MMNL 管理监控精简进程可管理性监控精简进程(MMNL)将来自SGA中活动会话历史记录(ASH)缓冲区的统计信息写入磁盘。当ASH缓冲区已满时,MMNL写入磁盘
(9)恢复进程(RECO)
在分布式数据库中,恢复程序(RECO)自动解决分布式事务中的故障。
2.可选后台进程
(1)归档进程(ARCn)
一个归档进程程序(ARCn)副本联机重做日志文件到离线存储重做日志切换发生后。
这些过程还可以收集事务重做数据并将其传输到备用数据库目标。仅当数据库处于ARCHIVELOG模式并且启用自动归档时,ARC n进程才存在。
(2)作业队列进程组(CJQ0)(Jnnn)
动态作业队列进程可以在给定的时间间隔内同时运行许多作业,:
1、Oracle Scheduler会根据需要自动启动和停止作业协调器进程(CJQ0)。
协调器进程会定期从系统JOB$表中选择需要运行的作业。选择的新作业按时间排序。
2、协调器进程动态生成作业队列从属进程(Jnnn)以运行作业。
3、作业队列进程运行CJQ0进程选择要执行的作业之一。每个作业队列进程一次运行一个作业,直到完成
4、该过程完成单个作业的执行后,将轮询更多作业。如果没有计划执行的作业,则它将进入睡眠状态,从睡眠状态开始,它会定期唤醒并轮询更多的作业。如果该进程未找到任何新作业,则它将在预设间隔后终止。
(3)闪回数据存档进程(FBDA)
闪回数据存档进程(FBDA)是后台进程,提供了在表的整个生命周期内跟踪和存储表中事务性更改的功能。这样,您可以及时向后闪回表,以恢复表的状态。
提交修改跟踪表的事务时,FBDA会检查是否正在⽣成新的Undo,过滤与标记为存档的对象相关的内容,并将Undo信息复制到闪回数据存档表空间中。FBDA维护当前行上的元数据,并跟踪已存档的数据量。
FBDA还负责自动管理闪回数据存档的空间,组织(分区表空间)和保留时间。FBDA还跟踪已跟踪交易的归档进度。
FBDA可以作为线程或操作系统进程运行。
(4)空间管理协调进程 (SMCO)
SMCO流程协调各种与空间管理相关的任务的执行。
典型的任务包括主动空间分配和空间回收。SMCO动态产生从属进程(W nnn)以执行任务。
3.从属进程
(1)I/O从属进程(Innn)
I / O从属进程(Innn)为不支持异步I/O的系统和设备模拟异步I / O,
异步I / O中,传输没有时序要求,从而使其他进程可以在传输完成之前启动
数据库支持不同类型的I / O从站,包括:
1、Recovery Manager(RMAN)的I / O从属
使用RMAN备份或还原数据时,可以将I / O从属设备同时用于磁盘和磁带设备。
2、如果使用多个数据库编写器进程不切实际(例如,当计算机只有一个CPU时),则数据库可以在多个从属进程上分配I / O。DBW是唯一扫描缓冲区高速缓存LRU列表以查找要写入磁盘的块的进程。但是,I / O从属为这些块执行I / O。
(2)并行执行服务器进程(PX)
查询协调器在并行执行中服务器进程充当查询协调器(也称为并行执行协调器)
负责以下工作:
1、解析查询
2、分配和控制并行执行服务器进程
3、将输出发送给用户
生产和使用
生产者负责处理其数据,然后将其分发给需要它的使用者
并行执行中,多个进程同时运行以运行单个SQL语句。通过在多个进程之间划分工作,Oracle数据库可以更快地运行该语句。
相关文章:
oracle后台进程详解#进程结构
一、oracle进程结构 oracle体系结构主要有实例数据库; 实例由内存结构(SGAPGA..)和进程结构(服务器进程后台进程..)组成;本文主要介绍进程结构 二、服务器进程 Oracle数据库创建服务器进程来处理连接到该实…...
解决DDP的参数未参与梯度计算
将find_unused_parameters改成False之后,如果出现模型有些参数未参与loss计算等错误。 可以用环境变量来debug查看log。 export TORCH_DISTRIBUTED_DEBUGDETAIL 代码上可以用以下方法查看。 # check parameters with no grad for n, p in model.named_parameters(…...
cpp primer笔记100-拷贝控制
如果拷贝构造函数如果传递的参数不是引用类型,则调用拷贝永远不成功,因为如果调用了拷贝构造函数,则必须拷贝它的实参,但是为了拷贝实参,我们又需要调用拷贝构造函数,如此循环。 如果想要删除默认构造函数…...
【数据库——MySQL】(16)游标和触发器习题及讲解
目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程,利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程,将某部门的员工工资按工作…...
javascript二维数组(9)toString的用法
在JavaScript中,toString() 是一个内置方法,用于将特定的对象转化为字符串表示形式。 基本使用示例 以下是一些 toString() 方法的基本使用示例: 数字的 toString(): let num 123; console.log(num.toString()); // 输出: &…...
OpenAI重大更新!为ChatGPT推出语音和图像交互功能
原创 | 文 BFT机器人 OpenAI旗下的ChatGPT正在迎来一次重大更新,这个聊天机器人现在能够与用户进行语音对话,并且可以通过图像进行交互,将其功能推向与苹果的Siri等受欢迎的人工智能助手更接近的水平。这标志着生成式人工智能运动的一个显著…...
【开发篇】十六、SpringBoot整合JavaMail实现发邮件
文章目录 0、相关协议1、SpringBoot整合JavaMail2、发送简单邮件3、发送复杂邮件 0、相关协议 SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议POP3(Post Office Protocol - Versi…...
如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】
文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…...
Flutter笔记:用于ORM的Floor框架简记
Flutter笔记 用于ORM的Floor框架简记 本文地址:https://blog.csdn.net/qq_28550263/article/details/133377191 floor 模块地址:https://pub.dev/packages/floor 【介绍】:最近想找用于Dart和Flutter的ORM框架,偶然间发现了Floor…...
Zabbix自定义脚本监控MySQL数据库
一、MySQL数据库配置 1.1 创建Mysql数据库用户 [rootmysql ~]# mysql -uroot -p create user zabbix127.0.0.1 identified by 123456; flush privileges; 1.2 添加用户密码到mysql client的配置文件中 [rootmysql ~]# vim /etc/my.cnf.d/client.cnf [client] host127.0.0.1 u…...
【Spatial-Temporal Action Localization(五)】论文阅读2020年
文章目录 1. Actions as Moving Points摘要和结论引言:针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…...
Linux基本指令(中)——“Linux”
各位CSDN的uu们好呀,今天,小雅兰的内容是Linux基本指令呀!!!下面,让我们进入Linux的世界吧!!! cp指令(重要) mv指令(重要)…...
OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击
作者:gentle_zhou 原文链接:OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击-云社区-华为云 Web应用程序安全一直是一个重要的话题,它不但关系到网络用户的隐私,财产,而且关系着用户对程序的新…...
Java自定义类加载器的详解与步骤
自定义类加载器的步骤 继承ClassLoader类:首先创建一个新的类,该类需要继承ClassLoader类。可以通过直接继承ClassLoader或是间接继承URLClassLoader等子类来实现。重写findClass()方法:在自定义类加载器中,最重要的是重写findCl…...
完美清晰,炫酷畅享——Perfectly Clear Video为你带来卓越的AI视频增强体验
在我们日常生活中,我们经常会拍摄和观看各种视频内容,无论是旅行记录、家庭聚会还是商务演示,我们都希望能够呈现出最清晰、最精彩的画面效果。而现在,有一个强大的工具可以帮助我们实现这一目标,那就是Perfectly Clea…...
如何让FileBeat支持http的output插件
目录 1 缘由2 编译filebeat3 配置虚拟机访问外网4 编译beats-output-http4.1 使用本地包4.2 发布在线包 5 测试6 beats-output-http的部分解释 1 缘由 官网的filebeat只有以下几种output插件: Elasticsearch ServiceElasticsearchLogstashKafkaRedisFileConsole …...
解密人工智能:决策树 | 随机森林 | 朴素贝叶斯
文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、决策树2.1 优点2.2 缺点 三、随机森林四、Naive Bayes(朴素贝叶斯)五、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法,通过对…...
web:[极客大挑战 2019]BabySQL
题目 点进页面显示如下 查看源代码 先尝试一下万能密码 没用,or被过滤了 试着双写看看 回显一串,也不是flag 先查询列数尝试一下,把union select过滤了,使用双写 构造payload /check.php?usernameadmin&password1 %27 ununi…...
DRM全解析 —— plane详解(1)
本文参考以下博文: Linux内核4.14版本——drm框架分析(5)——plane分析 特此致谢! 1. 简介 一个plane代表一个image layer(硬件图层),最终的image由一个或者多个plane(s)组成。plane和 Framebuffer 一样是内存地址。…...
数据结构总结
数据结构 相关博文 单链表数组模拟单链表-CSDN博客双链表数组模拟双链表-CSDN博客栈及单调栈数组模拟栈以及单调栈-CSDN博客队列及单调队列数组模拟队列以及单调队列-CSDN博客KMPKMP详细算法思路-CSDN博客TrieTire树的理解-CSDN博客并查集并查集(面试常考ÿ…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
