当前位置: 首页 > news >正文

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指令(重要&#xff09…...

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博客并查集并查集(面试常考&#xff…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

SpringAI实战:ChatModel智能对话全解

一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM&#xff0…...