oracle进程分三种:User process,Server process,Background processes。
user process和server process在“我的oracle学习日志(1)”中介绍过,在此不再赘述。容易迷惑的地方可能就是connection和session的区别,请看下图:
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):
功能如图所示:
n表示可以有多个,如DBW0,DBW1… …,oracle9i可以支持20个DBW,通常只启动一个。
LGWR(Log Writer)
功能如图:
SMON (System Monitor)
主要功能是恢复数据库的instance,当instance发生错误而停止时,在下次启动instance后负责将数据库回滚到错误发生前的状态。另外还有整理内存碎片和回收内存的功能。
PMON(Process Monitor)
负责监视进程(包括PGA和SGA内的所有进程 )的状态,若发现有进程出现错误或僵死则结束异常进程然后重新生成新的进程。
CKPT(Checkpoint)
主要功能是辅助DBW和LGWR,如图:
ARCn (Archiver)
这是一个可选进程,但在实际应用中几乎是必选的。功能如下图所示:
n表示可以有多个这样的进程。