归档进程 (ARCn) 是后台进程,仅当数据库处于ARCHIVELOG模式并启⽤⾃动归档时才存在,在这种情况下ARCn会⾃动归档联机重做⽇志⽂件。⽇志写⼊进程 (LGWR) 在归档之前不能重⽤和覆盖联机重做⽇志⽂件组。
数据库将根据需要启动多个归档程序进程,以确保已填充的联机重做⽇志的归档不会落后。可能的过程包括 ARC0-ARC9 和 ARCa-ARCt(31个可能的⽬的地)。
LOG_ARCHIVE_MAX_PROCESSES初始化参数指定数据库初调⽤的ARCn进 程数。如果您预计归档⼯作量很⼤,例如在批量加载数据期间,则可以增加归档进程的⼤数量。归档进程也可以有多个归档⽇志⽬的地。建议每个⽬的地⾄少有⼀个归档进程。
ARCn可以作为线程或操作系统进程运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
作业队列协调器进程 (CJQ0) 是⼀个后台进程,它从数据字典中选择需要运⾏的作业,并⽣成作业队列从属进程 (Jnnn) 来运⾏这些作业。 Oracle Scheduler会根据需要⾃动启动和停⽌CJQ0。 JOB_QUEUE_PROCESSES初始化参数指定可以为执⾏作业创建的⼤进程数。 CJQ0仅启动要运⾏的作业数量和可⽤资源所需数量的作业队 列进程。
作业队列从属进程 (Jnnn) 执⾏作业协调分配的作业。选择作业进⾏处理时,作业从属进程将执⾏以下操作:
•收集运⾏作业所需的所有元数据,例如:程序参数和权限信息。
•以作业的所有者身份启动数据库会话,启动事务,然后开始执⾏作业。
•作业完成后,从属进程将提交并结束事务。
•关闭会话。
完成⼯作后,从属进程将执⾏以下操作:
•重新安排作业(如果需要)
•更新作业表中的状态以反映作业是否已完成或计划再次运⾏
•在作业⽇志表中插⼊⼀个条⽬
•更新运⾏计数,并在必要时更新失败和重试计数
•清理
•寻找新⼯作(如果没有,则休眠)
CJQ0和Jnnn都可以作为线程或操作系统进程运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
Recovery Writer进程 (RVWR) 是⼀个后台进程,⽤于闪回整个数据库。 也就是说,如果您具有必需的闪回⽇志,它将撤消从数据库当前状态到过去某个时间的事务。 启⽤闪回或有保证的还原点时,RVWR将闪回数据写⼊快速恢复区域中的闪回数据库⽇志中。
RVWR可以作为线程或操作系统进程运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
闪回数据存档进程 (FBDA) 是后台进程,提供了在表的整个⽣命周期内跟踪和存储表中事务性更改的功能。 这样,您可以及时向后闪回表,以恢复表的状态。
提交修改跟踪表的事务时,FBDA会检查是否正在⽣成新的Undo,过滤与标记为存档的对象相关的内容,并将Undo信息复制到闪回数据存档表空间中。 FBDA维护当 前⾏上的元数据,并跟踪已存档的数据量。
FBDA还负责⾃动管理闪回数据存档的空间,组织(分区表空间)和保留时间。 FBDA还跟踪已跟踪交易的归档进度。
FBDA可以作为线程或操作系统进程运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
空间管理协调进程 (SMCO) 是⼀个后台进程,⽤于调度各种空间管理任务的执⾏,包括主动空间分配和空间回收。 SMCO动态产⽣空间管理从属进程 (Wnnn) 来实 现这些任务。请注意,内存中协调进程 (IMCO) 是启动后台填充和重新填充列数据的后台进程。
Wnnn从属进程代表空间管理和Oracle的In-Memory选项执⾏⼯作。
•Wnnn进程是由SMCO动态⽣成的从属进程,⽤于在后台执⾏空间管理任务。 这些任务包括根据空间使⽤量增⻓分析将空间预分配到本地管理的表空间和 SecureFiles段中,以及从删除的段中回收空间。这些任务还包括快速摄取延迟插⼊。启动后,从属进程将充当⾃治代理。完成任务执⾏后,它将⾃动从队列 中拾取另⼀个任务。该进程在⻓时间闲置后会⾃⾏终⽌。
•Wnnn进程填充并重新填充启⽤In-Memory功能的对象。内存中协调进程 (IMCO) 会启动后台填充和重新填充柱状数据。 IMCO后台进程和前台进程将 利⽤Wnnn从属进程进⾏填充和再填充。 IMCO使⽤Wnnn进程预填充优先级为 LOW/MEDIUM/HIGH/CRITICAL的启⽤In-Memory的对象,并重新填充InMemory的对象。 Wnnn从属进程上运⾏的内存填充和重新填充任务也从前台进程启动,以响应引⽤了启⽤In-Memory对象的查询和DML操作。
SMCO和Wnnn都可以作为线程或操作系统进程运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
在共享服务器体系结构中,客户端连接到分派进程 (Dnnn),该进程为每个连接创建虚电路。 当客户端将数据发送到服务器时,分派进程将数据接收到虚电路中,并将活动电路放置在公共队列中,以由空闲的共享服务器进程 (Snnn) 进⾏处理。 然后, Snnn从虚电路读取数据并执⾏完成请求所需的数据库⼯作。 当Snnn必须将数据发送到客户端时,Snnn将数据写回到虚电路中,⽽Dnnn会将数据发送到客户端。 Snnn完成客户端请求后,它将虚电路释放回Dnnn,并可以⾃由处理其他客户端。
Snnn和Dnnn都可以作为线程或操作系统进程运⾏。 除数据库实例外,Dnnn还在 共享服务器上运⾏。
注意:获得完整的进程列表,请看如下内容: Background Processes.
Oracle Database 19c 技术架构整篇文章已更新完,欢迎大家收藏阅读~