Oracle的后台进程主要包括
- DBWn 数据库写入进程(Databases writer)
- LGWR 日志文件写入进程(LOG writer)
- ARCn 归档进程(archive process)
- CKPT 检查点进程(Check Point)
- SMON 系统监控进程(system monitor)
- PMON 进程监控进程(process monitor)
DBWn后台进程(Database Writer)
DBWn进程,是Oracle中采用LRU(Least Recently Used,最近最少使用)算法 将数据缓冲区中的数据写入数据文件 的进程。
DBWn进程的作用
- 管理数据缓冲区,以便用户进程总能找到空闲的缓冲区。
- 将所有修改后的缓冲区数据写入数据文件。
- 使用LRU算法将最近使用过的块保留在内存中。
- 通过延迟写来优化磁盘I/O读写。
LGWR进程(LOG Writer)
LGWR进程,是负责管理日志缓冲区的一个后台进程,用于将日志缓冲区中的日志数据写入磁盘的日志文件中。
LGWR进程将日志信息同步地写入在线日志文件组的多个日志成员文件中,如果日志文件组中的某个成员文件被删除或者不可使用,则LGWR进程可以将日志信息写入该组的其他文件中,从而不影响数据库正常运行,但会在警告日志文件中记录错误。
CKPT进程(Check Point)
CKPT进程,一般在发生日志切换时自动产生,用于缩短实例恢复所需的时间。在检查点期间,CKPT进程更新控制文件与数据文件的标题,从而反映最近成功的。
SCN(System Change Number,系统更改号)。
SMON进程(System Monitor)
SMON进程,用于数据库实例出现故障或系统崩溃时,通过将联机重做日志文件中的条目应用于数据文件,执行崩溃恢复。
SMON进程一般用于定期合并字典管理的表空间中的空闲空间,此外,它还用于在系统重新启动期间清理所有表空间中的临时段。
PMON进程(Process Monitor)
PMON进程,用于在用户进程出现故障时执行进程恢复操作,负责清理内存存储区和释放该进程所使用的资源。
PMON进程周期性检查调度进程和服务器进程的状态,如果发现进程已死,则重新启动它。PMON进程被有规律地唤醒,检查是否需要使用,或者其他进程发现需要时也可以调用此进程。
PMON进程的作用:
- 回滚用户的当前事务
- 释放相关的锁
- 释放其他相关的资源
ARCn进程(Archive Process)
ARCn进程,用于将写满的日志文件复制到归档日志文件中,防止日志文件组中的日志信息由于日志文件组的循环使用而被覆盖。
RECO进程(Recovery)
RECO进程存在于分布式数据库系统中,用于自动解决在分布式数据库中出现的事务故障。
当一个数据库服务器的RECO进程试图与一个远程服务器建立通信时,如果远程服务器不可用或者无法建立网络连接,则RECO进程将自动在一个时间间隔之后再次连接。