后台进程
后台进程是计算机科学中的一个重要概念,指由Oracle Server隐含执行的一系列进程。
后台进程简介
在启动Oracle例程时,除了分配系统全局区(SGA),还会自动启动一系列后台进程。同样,在关闭例程时,Oracle数据库不仅会释放SGA所占用的内存空间,还会释放后台进程所占用的CPU和内存资源。Oracle提供了一系列后台进程,其中一些常用的进程包括SMON、PMON、DBWR、LGWR、CKPT、ARCH等。
后台进程分类介绍
DBWR 数据库写入进程
DBWR(Database Writer Process)进程主要负责将脏数据块从数据缓存(database block buffer)写回到磁盘上。为了提高效率,DBWR通常不会在事务提交完成后立即写回数据,而是定期地进行写回操作。此外,DBWR也会在数据缓冲区需要清空或已满的情况下进行写回。在支持异步I/O的系统中,只需要一个DBWR进程即可,而在不支持异步I/O的系统中,可以通过增加DBWR的数量来提升效率。
LGWR 日志写入进程
LGWR(Log Writer Process)负责将日志缓冲区中的数据写入重做日志。由于COMMIT操作依赖于LGWR写回日志,因此系统的性能可能会受到LGWR的影响。
PMON 进程监视进程
PMON(Process Monitor Process)进程主要负责监控数据库的处理情况,并清理死亡的进程。同时,PMON也负责重新启动失败的调度进程(dispatcher process)。
SMON 系统监视进程
SMON(System Monitor Process)在实例启动时负责恢复实例,包括清除临时段以及恢复因系统崩溃而中断的事务。SMON还能通过合并空闲分区的方式来清除数据库中的碎片。
CKPT 检查点进程
CKPT(Check Point软件技术公司 Process)进程负责向DBWR进程发送信号,以执行检查点操作,并更新数据库的所有数据和控制文件。如果没有CKPT进程,那么LGWR将会承担这些任务。
ARCHn 归档进程
Arch Linux(Archiver Process)负责将重做日志复制到归档存储器。只有在时态数据库运行在ARCHIVELOG模式时,ARCH才会生效。否则,系统失效后可能无法恢复。在ARCHIVELOG模式下,归档进程可能有多个。
RECO 恢复进程
RECO(Recovery Process)主要用于清除分布式数据库中的未决事务,负责分布式事务中本地部分的提交与回滚。
Dnnn 调度进程
Dnnn(Dispatcher Process)是调度进程的一种,当选择Multi-threaded Server选项时,每个通信协议至少有一个调度进程。它们负责将用户进程的请求转发到可用的共享服务器进程,并返回响应消息。
Snnn 共享服务器进程
Snnn(Shared Servers Process)是在使用共享服务器配置或MTS时使用的进程。这些进程类似于专用服务器进程,但能够被多个用户共享。
LMS Oracle RAC 锁管理服务
LMS(Lock Management Service)在使用Oracle数据库 Real Application Clusters(RAC)时,用于管理集群中不同节点之间的锁。
QMNn 队列管理进程
QMNn(Queue Manager Process)在使用高级队列选项时,用于管理作业队列。队列数量最多可达10个,编号范围从QMN0至QMN9。
参考资料
后台进程.博客.2024-10-22
后台进程.腾讯云.2024-10-22
DBWR.博客.2024-10-22