Oracle 进程结构图

Oracle 进程结构图

用户进程

  用户进程是一个与 Oracle 服务器进行交互的程序。一般的客户端软件,像 Oracle 的 sqlplus,sql developer,或者是一些驱动程序等等向数据库发送请求时即创建了用户进程。

服务器进程

  当监听程序监听到客户端来了一个请求,在创建会话时便会为其分配一个对应的服务器进程。服务器进程的主要作用就是处理连接到当前实例的用户进程的请求,对客户端发来的 sql 进行执行并返回执行结果。

后台进程

后台进程是 Oracle 数据库为了保持最佳系统性能和协调多个用户请求而设置的一系列后台进程。

进程监控(PMON)

对故障的进程执行恢复操作,负责清理内存存储区和释放该进程所使用的资源
周期的检查调度进程和服务器进程的状态,对已死的进程进行重启

系统监控(SMON)

当数据库实例出现故障或者系统崩溃的时候,执行恢复操作
定期合并字典管理的表空间中的空闲空间
在系统重启期间,清理表空间所有临时段
安装和打开数据库

数据写入(DBWn)

负责的将更新完的缓冲区数据写入磁盘中。以下情况发生时执行:

  • 没有可以写入的缓存空间
  • 脏缓存达到限制(会导致搜索时间过长)1/4 满
  • 最晚三秒钟:最晚三秒会执行一次写入
  • 遇到检查点:遇到这个 checkpoint 便会执行写程序
  • 表空间热备份的时候
  • 表空间离线、只读状态
  • 执行 Drop 操作的时候

日志写入(LGWR)

将日志缓冲区的脏数据写进磁盘中 以下情况发生时执行:

  • commit 写入
  • 日志缓冲区占用率 1/3
  • DBWn 要写入脏缓冲区前

检查点进程(CKPT)

负责发起检查点信号,让 DBWn 开始工作
更新控制文件以及数据文件头

归档进程(ACRn)

将日志文件复制到归档日志文件中,来避免日志文件组的循环使用覆盖到已有的日志文件。
只有当数据库在 ARCHIVELOG 模式下,且自动归档开启的时候,系统便会启动 ARCn 进程;ARCn 包括归档方式和非归档方式。

恢复器进程(RECO)

是一个用于分布式数据库配置的后台进程,它可以自动解决涉及分布式事务处理的故障。