Oracle 19c 进程相关
后台进程是数据库实例的一部分,执行维护任务以操作数据库并为多个用户提供最大性能。每个后台进程执行一个独特的任务,但与其他进程共同工作。在启动数据库实例时,Oracle数据库会自动创建后台进程。存在的后台进程取决于数据库中使用的功能。在启动数据库实例时,强制性后台进程会自动启动。可以在后续需要时启动可选的后台进程。
强制性后台进程存在于所有典型的数据库配置中。这些进程在使用最小配置初始化参数文件启动的读/写数据库实例中默认运行。只读数据库实例会禁用其中一些进程。强制性后台进程包括进程监视器进程(PMON)、进程管理器进程(PMAN)、监听器注册进程(LREG)、系统监视器进程(SMON)、数据库写入进程(DBWn)、检查点进程(CKPT)、可管理性监视器进程(MMON)、轻量级可管理性监视器进程(MMNL)、恢复进程(RECO)和日志写入进程(LGWR)。
大多数可选的后台进程是针对特定任务或特性的。一些常见的可选进程包括归档进程(ARCn)、作业队列协调器进程(CJQ0)、恢复写入进程(RVWR)、闪回数据存档进程(FBDA)和空间管理协调器进程(SMCO)。
从属进程是代表其他进程执行工作的后台进程;例如,调度程序进程(Dnnn)和共享服务器进程(Snnn)。
进程mman、mmnl和mmon这3个进程的作用:
① MMAN(Memory Manager Process,内存管理进程)进程会随着时间推移,根据系统负载的变化和内存需要,自动调整SGA中各个组件的内存大小。
② MMON(Manageability Monitor Process,可管理性监视器进程)和它的slave进程(Mnnn)主要用来维护AWR信息和各种与可管理性相关的后台任务,具体包括:(1)启动slave进程Mnnn去做AWR快照。若MMON进程HANG住,则AWR不可用。(2)当某个测量值(metrics)超过了其度量阀值(threshold value)时发出alert告警。(3)为最近改变过的SQL对象捕获指标信息。
③ MMNL(Manageability Monitor Lite Process)将SGA中的ASH(Active Session History)Buffer中的统计资料写到磁盘。当ASH Buffer满的时候MMNL会把它写到磁盘上。
需要注意的是,若MMON或MMNL进程被kill掉了,则Oracle会自动启动这两个进程,
进程监视进程(PMON Process Monitor Process)是一个后台进程,定期扫描(Periodically scans)所有进程,查找任何异常终止的进程。PMON负责协调清理主进程(CLMN Cleanup Main Process )和清理从进程(CLnn Cleanup Slave Process slaves)执行的清理工作。
PMON作为一个操作系统进程运行,而不是作为一个线程。除了数据库实例,PMON也在ASM实例和Oracle ASM代理实例上运行。
进程管理器进程(PMAN)是一个后台进程,根据需要监视、生成和停止以下内容:
1) 调度程序和共享服务器进程
2) 连接代理和数据库驻留连接池的池化服务器进程
3) 作业队列进程
4) 可重启的后台进程
PMAN作为一个操作系统进程运行,而不是作为一个线程。除了数据库实例,PMAN也在ASM实例和Oracle ASM代理实例上运行。
监听器注册进程(LREG)是一个后台进程,用于通知监听器有关实例、服务、处理程序和端点的信息。
LREG可以作为线程或操作系统进程运行。除了数据库实例,LREG也在ASM实例和RAC上运行。
系统监视进程(SMON System Monitor Process)是一个后台进程,执行许多数据库维护任务,包括以下内容:
1) 创建和管理临时表空间元数据,并回收孤立的临时段所使用的空间
2) 通过基于回滚段使用统计信息,对回滚表空间进行上线、下线和收缩
3) 当数据字典处于瞬态且不一致状态时,进行清理
4) 维护用于支持闪回功能的SCN (System Change Number) 和时间之间的映射表
SMON能够处理后台活动期间引发的内部和外部错误。SMON可以作为线程或操作系统进程运行。在RAC数据库中,一个实例的SMON进程可以为其他故障的实例执行实例恢复。
数据库写进程(DBWn Database Writer Process)是一个后台进程,主要负责将数据块写入磁盘。它还处理SCN、文件打开同步以及块写入记录的日志。当配置了Flash Cache时,DBWn还会向数据库Smart Flash Cache(Flash Cache)进行写入。
在许多情况下,DBWn写入的块会分散存储在磁盘上。因此,与由日志写进程(LGWR)执行的顺序写入相比,写入速度可能会较慢。DBWn会尽可能执行一次性多块写入以提高效率。多块写入的块数会根据操作系统而异。
DB_WRITER_PROCESSES初始化参数指定了数据库写进程的数量。可以有1至100个数据库写进程。前36个数据库写进程的名称是DBW0-DBW9和DBWa-DBWz。第37至100个数据库写进程的名称是BW36-BW99。数据库会根据CPU数和处理器组选择适当的默认设置或根据用户指定的设置来调整DB_WRITER_PROCESSES参数。除solaris平台外,其他平台建议为CPU_COUNT / 8。
校验点进程(CKPT)是一个后台进程,在特定时刻通过向数据库写进程(DBWn)发送消息,发起一个校验点请求,开始写入脏数据块。在完成各个校验点请求后,CKPT会更新数据文件头和控制文件,记录最近的校验点信息。
CKPT每三秒检查一次内存使用量是否超过PGA_AGGREGATE_LIMIT的值,如果超过,则采取相应的措施。
CKPT可以作为线程或操作系统进程运行。在数据库实例和ASM实例上运行。
Manageability Monitor Process (MMON) and Manageability Monitor Lite Process (MMNL)
管理性监视进程(MMON)和管理性监视轻量进程(MMNL)是执行与自动工作负载库(AWR Automatic Workload Repository)相关的任务的后台进程。AWR是一个包含累积统计数据如系统、会话、单个SQL语句、段和服务的历史性能数据存储库。它用于问题检测和自调整目的。
MMON从SGA收集各种内存统计信息,对其进行过滤,然后默认每60分钟在自动工作负载库(AWR)中创建这些统计信息的快照。它还执行自动数据库诊断监视器(ADDM Automatic Database Diagnostic Monitor)分析,并对超出阈值的指标发出警报。
MMNL收集会话统计信息(例如用户ID、会话状态、计算机、正在执行的SQL),并将其存储在活动会话历史(ASH Active Session History)缓冲区中。具体而言,MMNL每秒在SGA中对V$SESSION和V$SESSION_WAIT视图中活动会话进行采样,然后将数据记录在V$ACTIVE_SESSION_HISTORY视图中。ASH为内存中的滚动缓冲区,因此在需要时会覆盖早期信息。当ASH缓冲区变满或MMON拍摄快照时,MMNL将ASH缓冲区刷新(清空)到AWR中的DBA_HIST_ACTIVE_SESS_HISTORY视图中。由于空间昂贵,MMNL计算指标。只刷新10%,
MMON和MMNL都可以作为线程或操作系统进程运行。在数据库实例、ASM实例上运行。
Recoverer Process(RECO)是一个后台进程,它解决因分布式数据库中的网络或系统故障而处于挂起状态的分布式事务。
RECO可以作为线程或操作系统进程运行。
日志写进程(LGWR Log Writer Process)是一个后台进程,将系统全局区域(SGA)的重做日志缓冲区中的重做日志条目按顺序写入重做日志文件中。如果数据库具有重复制的重做日志,则LGWR将相同的重做日志条目写入到重做日志文件组的所有成员中。
LGWR处理那些非常快速、或者需要协调的操作,并将一些操作委托给并发的日志写进程助手进程(LGnn Log Writer Worker helper processes),主要是将重做数据从日志缓冲区写入到重做日志文件,并将完成的写操作通知等待的前台进程。
重做传输从属进程(TT00-zz)将重做数据从当前的在线重做日志和备用重做日志传输到配置为异步(ASYNC)重做传输的远程备用目的地。
LGWR可以作为线程或操作系统进程运行。在数据库实例、ASM实例上运行。在RAC中,每个数据库实例都有自己的一组重做日志文件。
归档进程(ARCn Archiver Processes)是后台进程,仅在数据库处于ARCHIVELOG模式并启用自动归档时存在,此时ARCn会自动归档在线重做日志文件。日志写进程(LGWR)在Redolog被归档之前无法重新利用和覆盖。
数据库会根据需要启动多个归档进程,以确保Redolog归档工作不会滞后。可能的进程名称包括ARC0-ARC9和ARCa-ARCt(共31种可能的目标)。
LOG_ARCHIVE_MAX_PROCESSES初始化参数指定了数据库最初调用的ARCn进程的数量。如预期进行大量数据加载等需要大量归档工作的情况,可以增加归档进程的最大数量。还可以有多个归档日志目的地。建议每个目的地至少有一个归档进程。
ARCn可以作为线程或作为操作系统进程运行。
作业队列协调器进程(CJQ0)是一个后台进程,它从数据字典选择需要运行的作业,并生成作业队列从属进程(Jnnn Job Queue Slave Processes)以运行作业。Oracle Scheduler根据需要自动启动和停止CJQ0。可创建的作业最大进程数由JOB_QUEUE_PROCESSES参数决定。CJQ0只启动需要的进程数。
作业队列从属进程(Jnnn)执行作业协调器分配的作业。选择作业进行则Job slave进程处理流程如下:
1) 收集运行作业所需的所有元数据,例如,程序参数和权限信息。
2) 以作业所有者的身份启动数据库会话,启动事务,然后开始执行作业。
4) 关闭会话。
作业完成后,Job slave进程执行以下操作:
1) 如果需要,重新安排工作
2) 更新作业表中的状态以反映作业是已完成还是计划再次运行
3) 将条目插入作业日志表
4) 更新运行计数,如有必要,更新失败并重试计数
5) 清理
6) 寻找新工作(如果没有,他们会去睡觉)
CJQ0和Jnnn都可以作为线程或操作系统进程运行。
Recovery Writer Process(RVWR)是一个后台进程,启用闪回或有保证还原点时,RVWR会将闪回数据写入快速恢复区域中的闪回数据库日志。闪回日志可将协助事务从数据库的当前状态撤消到过去的某个时间。
RVWR可以作为线程或操作系统进程运行。
闪回数据归档进程(FBDA)是一个后台进程,提供了跟踪和存储表在其生命周期内事务性变化的能力。可以将表闪回到过去的状态以恢复它们的历史版本。当一个被跟踪的表修改的事务提交时,FBDA会检查是否生成了新的撤消信息,筛选出与标记为归档对象相关的内容,并将该撤消信息复制到闪回数据归档表空间中。FBDA会维护当前行的元数据,并跟踪已归档了多少数据。
此外,FBDA还负责自动管理闪回数据归档的空间、组织(分区表空间)和保留。FBDA还会跟踪已跟踪事务的归档进度。
FBDA可以作为线程或操作系统进程运行。
空间管理协调器进程(SMCO)是一个后台进程,用于安排执行各种空间管理任务,包括主动空间分配(space allocation)和空间回收(space reclamation)。SMCO动态生成空间管理从属进程(Wnnn Space Management Slave Processes)来执行这些任务。请注意,内存协调器进程(IMCO In-Memory Coordinator Process)是一个后台进程,用于启动列式数据的后台填充和重新填充。
Wnnn slave进程代表Space Management 和 In-Memory选项执行工作。
1) Wnnn 进程是由 SMCO 动态生成的从属进程,用于在后台执行空间管理任务。这些任务包括根据空间使用增长分析将空间预分配到本地管理表空间和 SecureFiles 段,并从已删除的段中回收空间。任务还包括快速插入延迟插入。启动后,从属进程充当自主代理。完成任务执行后,它会自动从队列中选择另一个任务。进程在长时间空闲后会自动终止。
2) IMCO 后台进程和前台进程将利用 Wnnn 从属进程进行填充和重新填充 启用了In-Memory的对象。
SMCO 和 Wnnn 都可以作为线程或操作系统进程运行。
1.16. Dispatcher Process (Dnnn) and Shared Server Process (Snnn)
调度程序进程(Dnnn)和共享服务器进程(Snnn)
在共享服务器架构中,客户端会连接到调度器进程(Dnnn Dispatcher Process ),该进程为每个连接创建一个虚拟回路。当客户端向服务器发送数据时,调度器接收数据并将其放入虚拟回路,然后将活动回路放入公共队列,以便空闲的共享服务器进程(Snnn Shared Server process)接管。接着,Snnn从虚拟回路中读取数据,并执行完成请求所需的数据库操作。当Snnn需要向客户端发送数据时,它将数据写回虚拟回路,然后Dnnn将数据发送给客户端。完成客户端请求后,Snnn将虚拟回路释放给Dnnn,并可以处理其他客户端。
Snnn和Dnnn都可以作为线程或操作系统进程运行。除了数据库实例外,Dnnn也在共享服务器上运行。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作