oracle进程分三种:User process,Server process,Background processes。

user processserver process在“我的oracle学习日志(1)”中介绍过,在此不再赘述。容易迷惑的地方可能就是connection和session的区别,请看下图:

 

我的oracle 9i学习日志(3)--进程结构_oracle

Background Processes

有5个必须启动的进程和若干个可选进程。必须启动的进程:DBWn,PMON ,CKPT,LGWR和SMON。可选进程:

      ARCn: Archiver
      CJQ0: Coordinator Job Queue background process
      Dnnn: Dispatcher
      LCKn: RAC Lock Manager-instance Locks
      LMDn: RAC DLM Monitor-remote Locks
      LMON: RAC DLM Monitor-global Locks
      LMS: RAC Global Cache Service
      Pnnn: Parallel Query Slaves
      QMNn: Advanced Queuing
      RECO: Recoverer
      Snnn: Shared Server

DBWn(Database Writer):

功能如图所示:

 

我的oracle 9i学习日志(3)--进程结构_oracle_02

 n表示可以有多个,如DBW0,DBW1… …,oracle9i可以支持20个DBW,通常只启动一个。

LGWR(Log Writer)

功能如图:

 

我的oracle 9i学习日志(3)--进程结构_休闲_03

SMON (System Monitor)

主要功能是恢复数据库的instance,当instance发生错误而停止时,在下次启动instance后负责将数据库回滚到错误发生前的状态。另外还有整理内存碎片和回收内存的功能。

 PMON(Process Monitor)

负责监视进程(包括PGA和SGA内的所有进程 )的状态,若发现有进程出现错误或僵死则结束异常进程然后重新生成新的进程。

 CKPT(Checkpoint)

主要功能是辅助DBW和LGWR,如图:

 

我的oracle 9i学习日志(3)--进程结构_进程_04

ARCn (Archiver)

这是一个可选进程,但在实际应用中几乎是必选的。功能如下图所示:

 

我的oracle 9i学习日志(3)--进程结构_oracle_05

n表示可以有多个这样的进程。