oracle进程简述

oracle中的各个进程要完成某个特定的任务或一组任务,每个进程都会分配内部内存(PGA 内存)来完成它的任务。oracle实例主要有3类进程:

服务器进程(server process):这些进程根据客户的请求来完成工作。我们已经对专用服务器和共享服务器有了一定的了解,它们就是服务器进程。

后台进程(background process):这些进程随数据库而启动,用于完成各种维护任务,如将块写至磁盘、维护在线重做日志、清理异常中止的进程等。

从属进程(slave process):这些进程类似于后台进程,不过它们要代表后台进程或服务器进程完成一些额外的工作。

一、服务器进程

专用服务器(dedicated server)连接,采用专用服务器连接时,会在服务器上得到针对这个连接的一个专用进程。数据库连接与服务器上的一个进程或线程之间存在一对一的映射。

共享服务器(shared server)连接,采用共享服务器连接时,多个会话可以共享一个服务器进程池,其中的进程由oracle实例生成和管理。你所连接的是一个数据库调度器(dispatcher),而不是特意为连接创建的一个专用服务器进程。

这些服务器进程是干重活的进程。在很多情况下,你都会发现这些进程占用的系统CPU时间最多, 因为正是这些进程来执行排序、汇总、联结等等工作,几乎所有工作都是这些进程做的。

二、连接和会话

连接(connection):连接是从客户到oracle实例的一条物理路径。连接可以在网络上建立,或者通过IPC机制建立。通常会在客户进程与一个专用服务器或一个调度器之间建立连接。不过,如果使用oracle的连接管理器(Connection Manager,CMAN),还可以在客户和CMAN之间以及CMAN和数据库之间建立连接。

会话(session):会话是实例中存在的一个逻辑实体。这就是你的会话状态(session state),也就是表示特定会话的一组内存中的数据结构。提到“数据库连接”时,大多数人首先想到的就是“会话” 。你要在服务器中的会话上执行SQL、提交事务和运行存储过程。

连接是物理概念上的,会话是逻辑概念上的,会话是建立在连接之上的,如果会话没有连接它会重新建立一个连接。在一条连接上可以建立0个、一个或多个会话。各个会话是单独而且独立的,即使它们共享同一条数据库物理连接也是如此。也就是说在一个连接里面可以多个用户登录,或一个用户登录多次。

三、后台进程

oracle后台进程分为中心后台进程和工具后台进程。

select paddr, name, description from v$bgprocess order by paddr desc;

PADDR		 NAME  DESCRIPTION
---------------- ----- ----------------------------------------------------------------
0000000091F69868 SMCO  Space Manager Process
0000000091F666E8 QMNC  AQ Coordinator
0000000091F65668 VKRM  Virtual sKeduler for Resource Manager
0000000091F645E8 ARC3  Archival Process 3
0000000091F63568 ARC2  Archival Process 2
0000000091F624E8 ARC1  Archival Process 1
0000000091F61468 ARC0  Archival Process 0
0000000091F603E8 CJQ0  Job Queue Coordinator
0000000091F5A0E8 MMNL  Manageability Monitor Process 2
0000000091F59068 MMON  Manageability Monitor Process
0000000091F57FE8 RECO  distributed recovery
0000000091F56F68 SMON  System Monitor Process
0000000091F55EE8 CKPT  checkpoint
0000000091F54E68 LGWR  Redo etc.
0000000091F53DE8 DBW0  db writer process 0
0000000091F52D68 MMAN  Memory Manager
0000000091F51CE8 DIA0  diagnosibility process 0
0000000091F50C68 DBRM  DataBase Resource Manager
0000000091F4FBE8 DIAG  diagnosibility process
0000000091F4EB68 GEN0  generic0
0000000091F4DAE8 VKTM  Virtual Keeper of TiMe process
0000000091F4CA68 PSP0  process spawner 0
0000000091F4B9E8 PMON  process cleanup
00		 RSMN  Remote Slave Monitor
00		 PING  interconnect latency measurement
00		 FMON  File Mapping Monitor Process
00		 ACMS  Atomic Controlfile to Memory Server
00		 DSKM  slave DiSKMon process
00		 DIA1  diagnosibility process 1
00		 DIA2  diagnosibility process 2
00		 DIA3  diagnosibility process 3
00		 DIA4  diagnosibility process 4
00		 DIA5  diagnosibility process 5
00		 DIA6  diagnosibility process 6
00		 DIA7  diagnosibility process 7
00		 DIA8  diagnosibility process 8
00		 DIA9  diagnosibility process 9
00		 LMON  global enqueue service monitor
00		 LMD0  global enqueue service daemon 0
00		 LMS0  global cache service process 0
00		 LMS1  global cache service process 1
00		 LMS2  global cache service process 2
00		 LMS3  global cache service process 3
00		 LMS4  global cache service process 4
00		 LMS5  global cache service process 5
00		 LMS6  global cache service process 6
00		 LMS7  global cache service process 7
00		 LMS8  global cache service process 8
00		 LMS9  global cache service process 9
00		 LMSa  global cache service process 10
00		 LMSb  global cache service process 11
00		 LMSc  global cache service process 12
00		 LMSd  global cache service process 13
00		 LMSe  global cache service process 14
00		 LMSf  global cache service process 15
00		 LMSg  global cache service process 16
00		 LMSh  global cache service process 17
00		 LMSi  global cache service process 18
00		 LMSj  global cache service process 19
00		 LMSk  global cache service process 20
00		 LMSl  global cache service process 21
00		 LMSm  global cache service process 22
00		 LMSn  global cache service process 23
00		 LMSo  global cache service process 24
00		 LMSp  global cache service process 25
00		 LMSq  global cache service process 26
00		 LMSr  global cache service process 27
00		 LMSs  global cache service process 28
00		 LMSt  global cache service process 29
00		 LMSu  global cache service process 30
00		 LMSv  global cache service process 31
00		 LMSw  global cache service process 32
00		 LMSx  global cache service process 33
00		 LMSy  global cache service process 34
00		 RMS0  rac management server
00		 LMHB  lm heartbeat monitor
00		 DBW1  db writer process 1
00		 DBW2  db writer process 2
00		 DBW3  db writer process 3
00		 DBW4  db writer process 4
00		 DBW5  db writer process 5
00		 DBW6  db writer process 6
00		 DBW7  db writer process 7
00		 DBW8  db writer process 8
00		 DBW9  db writer process 9
00		 DBWa  db writer process 10 (a)
00		 DBWb  db writer process 11 (b)
00		 DBWc  db writer process 12 (c)
00		 DBWd  db writer process 13 (d)
00		 DBWe  db writer process 14 (e)
00		 DBWf  db writer process 15 (f)
00		 DBWg  db writer process 16 (g)
00		 DBWh  db writer process 17 (h)
00		 DBWi  db writer process 18 (i)
00		 DBWj  db writer process 19 (j)
00		 DBWk  db writer process 20 (k)
00		 DBWl  db writer process 21 (l)
00		 DBWm  db writer process 22 (m)
00		 DBWn  db writer process 23 (n)
00		 DBWo  db writer process 24 (o)
00		 DBWp  db writer process 25 (p)
00		 DBWq  db writer process 26 (q)
00		 DBWr  db writer process 27 (r)
00		 DBWs  db writer process 28 (s)
00		 DBWt  db writer process 29 (t)
00		 DBWu  db writer process 30 (u)
00		 DBWv  db writer process 31 (v)
00		 DBWw  db writer process 32 (s)
00		 DBWx  db writer process 33 (t)
00		 DBWy  db writer process 34 (u)
00		 DBWz  db writer process 35 (v)
00		 MRP0  Managed Standby Recovery
00		 ARC4  Archival Process 4
00		 ARC5  Archival Process 5
00		 ARC6  Archival Process 6
00		 ARC7  Archival Process 7
00		 ARC8  Archival Process 8
00		 ARC9  Archival Process 9
00		 ARCa  Archival Process 10
00		 ARCb  Archival Process 11
00		 ARCc  Archival Process 12
00		 ARCd  Archival Process 13
00		 ARCe  Archival Process 14
00		 ARCf  Archival Process 15
00		 ARCg  Archival Process 16
00		 ARCh  Archival Process 17
00		 ARCi  Archival Process 18
00		 ARCj  Archival Process 19
00		 ARCk  Archival Process 20
00		 ARCl  Archival Process 21
00		 ARCm  Archival Process 22
00		 ARCn  Archival Process 23
00		 ARCo  Archival Process 24
00		 ARCp  Archival Process 25
00		 ARCq  Archival Process 26
00		 ARCr  Archival Process 27
00		 ARCs  Archival Process 28
00		 ARCt  Archival Process 29
00		 NSA1  Redo transport NSA1
00		 NSS1  Redo transport NSS1
00		 NSA2  Redo transport NSA2
00		 NSS2  Redo transport NSS2
00		 NSA3  Redo transport NSA3
00		 NSS3  Redo transport NSS3
00		 NSA4  Redo transport NSA4
00		 NSS4  Redo transport NSS4
00		 NSA5  Redo transport NSA5
00		 NSS5  Redo transport NSS5
00		 NSA6  Redo transport NSA6
00		 NSS6  Redo transport NSS6
00		 NSA7  Redo transport NSA7
00		 NSS7  Redo transport NSS7
00		 NSA8  Redo transport NSA8
00		 NSS8  Redo transport NSS8
00		 NSA9  Redo transport NSA9
00		 NSS9  Redo transport NSS9
00		 NSAA  Redo transport NSAA
00		 NSSA  Redo transport NSSA
00		 NSAB  Redo transport NSAB
00		 NSSB  Redo transport NSSB
00		 NSAC  Redo transport NSAC
00		 NSSC  Redo transport NSSC
00		 NSAD  Redo transport NSAD
00		 NSSD  Redo transport NSSD
00		 NSAE  Redo transport NSAE
00		 NSSE  Redo transport NSSE
00		 NSAF  Redo transport NSAF
00		 NSSF  Redo transport NSSF
00		 NSAG  Redo transport NSAG
00		 NSSG  Redo transport NSSG
00		 NSAH  Redo transport NSAH
00		 NSSH  Redo transport NSSH
00		 NSAI  Redo transport NSAI
00		 NSSI  Redo transport NSSI
00		 NSAJ  Redo transport NSAJ
00		 NSSJ  Redo transport NSSJ
00		 NSAK  Redo transport NSAK
00		 NSSK  Redo transport NSSK
00		 NSAL  Redo transport NSAL
00		 NSSL  Redo transport NSSL
00		 NSAM  Redo transport NSAM
00		 NSSM  Redo transport NSSM
00		 NSAN  Redo transport NSAN
00		 NSSN  Redo transport NSSN
00		 NSAO  Redo transport NSAO
00		 NSSO  Redo transport NSSO
00		 NSAP  Redo transport NSAP
00		 NSSP  Redo transport NSSP
00		 NSAQ  Redo transport NSAQ
00		 NSSQ  Redo transport NSSQ
00		 NSAR  Redo transport NSAR
00		 NSSR  Redo transport NSSR
00		 NSAS  Redo transport NSAS
00		 NSSS  Redo transport NSSS
00		 NSAT  Redo transport NSAT
00		 NSST  Redo transport NSST
00		 NSAU  Redo transport NSAU
00		 NSSU  Redo transport NSSU
00		 NSAV  Redo transport NSAV
00		 NSSV  Redo transport NSSV
00		 LCK0  Lock Process 0
00		 ABMR  Auto BMR Background Process
00		 LSP1  Dictionary build process for Logical Standby
00		 LSP0  Logical Standby
00		 LSP2  Set Guard Standby Information for Logical Standby
00		 CTWR  Change Tracking Writer
00		 RVWR  Recovery Writer
00		 FBDA  Flashback Data Archiver Process
00		 GTX0  Global Txn process 0
00		 GTX1  Global Txn process 1
00		 GTX2  Global Txn process 2
00		 GTX3  Global Txn process 3
00		 GTX4  Global Txn process 4
00		 GTX5  Global Txn process 5
00		 GTX6  Global Txn process 6
00		 GTX7  Global Txn process 7
00		 GTX8  Global Txn process 8
00		 GTX9  Global Txn process 9
00		 GTXa  Global Txn process 10
00		 GTXb  Global Txn process 11
00		 GTXc  Global Txn process 12
00		 GTXd  Global Txn process 13
00		 GTXe  Global Txn process 14
00		 GTXf  Global Txn process 15
00		 GTXg  Global Txn process 16
00		 GTXh  Global Txn process 17
00		 GTXi  Global Txn process 18
00		 GTXj  Global Txn process 19
00		 RCBG  Result Cache: Background
00		 EMNC  EMON Coordinator
00		 DMON  DG Broker Monitor Process
00		 RSM0  Data Guard Broker Resource Guard Process 0
00		 NSV0  Data Guard Broker NetSlave Process 0
00		 NSV1  Data Guard Broker NetSlave Process 1
00		 NSV2  Data Guard Broker NetSlave Process 2
00		 NSV3  Data Guard Broker NetSlave Process 3
00		 NSV4  Data Guard Broker NetSlave Process 4
00		 NSV5  Data Guard Broker NetSlave Process 5
00		 NSV6  Data Guard Broker NetSlave Process 6
00		 NSV7  Data Guard Broker NetSlave Process 7
00		 NSV8  Data Guard Broker NetSlave Process 8
00		 NSV9  Data Guard Broker NetSlave Process 9
00		 NSVA  Data Guard Broker NetSlave Process A
00		 NSVB  Data Guard Broker NetSlave Process B
00		 NSVC  Data Guard Broker NetSlave Process C
00		 NSVD  Data Guard Broker NetSlave Process D
00		 NSVE  Data Guard Broker NetSlave Process E
00		 NSVF  Data Guard Broker NetSlave Process F
00		 NSVG  Data Guard Broker NetSlave Process G
00		 NSVH  Data Guard Broker NetSlave Process H
00		 NSVI  Data Guard Broker NetSlave Process I
00		 NSVJ  Data Guard Broker NetSlave Process J
00		 NSVK  Data Guard Broker NetSlave Process K
00		 NSVL  Data Guard Broker NetSlave Process L
00		 NSVM  Data Guard Broker NetSlave Process M
00		 NSVN  Data Guard Broker NetSlave Process N
00		 NSVO  Data Guard Broker NetSlave Process O
00		 NSVP  Data Guard Broker NetSlave Process P
00		 NSVQ  Data Guard Broker NetSlave Process Q
00		 NSVR  Data Guard Broker NetSlave Process R
00		 NSVS  Data Guard Broker NetSlave Process S
00		 NSVT  Data Guard Broker NetSlave Process T
00		 NSVU  Data Guard Broker NetSlave Process U
00		 INSV  Data Guard Broker INstance SlaVe Process
00		 FSFP  Data Guard Broker FSFO Pinger
00		 RBAL  ASM Rebalance master
00		 ARB0  ASM Rebalance 0
00		 ARB1  ASM Rebalance 1
00		 ARB2  ASM Rebalance 2
00		 ARB3  ASM Rebalance 3
00		 ARB4  ASM Rebalance 4
00		 ARB5  ASM Rebalance 5
00		 ARB6  ASM Rebalance 6
00		 ARB7  ASM Rebalance 7
00		 ARB8  ASM Rebalance 8
00		 ARB9  ASM Rebalance 9
00		 ARBA  ASM Rebalance 10
00		 ASMB  ASM Background
00		 MARK  mark AU for resync koordinator
00		 GMON  diskgroup monitor
00		 VBG0  Volume BG 0
00		 VBG1  Volume BG 1
00		 VBG2  Volume BG 2
00		 VBG3  Volume BG 3
00		 VBG4  Volume BG 4
00		 VBG5  Volume BG 5
00		 VBG6  Volume BG 6
00		 VBG7  Volume BG 7
00		 VBG8  Volume BG 8
00		 VBG9  Volume BG 9
00		 VDBG  Volume Driver BG
00		 VMB0  Volume Membership 0
00		 ACFS  ACFS CSS
00		 XDMG  cell automation manager
00		 XDWK  cell automation worker actions


结果中地址非00的进程是在系统中正在运行的进程。

ps -ef | grep ora

oracle     489     1  0 Mar13 ?        00:02:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit
oracle     635     1  0 Mar13 ?        00:06:04 xe_pmon_XE
oracle     637     1  0 Mar13 ?        00:06:22 xe_psp0_XE
oracle     639     1  0 Mar13 ?        00:08:37 xe_vktm_XE
oracle     643     1  0 Mar13 ?        00:01:10 xe_gen0_XE
oracle     645     1  0 Mar13 ?        00:01:46 xe_diag_XE
oracle     647     1  0 Mar13 ?        00:01:16 xe_dbrm_XE
oracle     649     1  0 Mar13 ?        00:16:51 xe_dia0_XE
oracle     651     1  0 Mar13 ?        00:01:12 xe_mman_XE
oracle     653     1  0 Mar13 ?        00:01:53 xe_dbw0_XE
oracle     655     1  0 Mar13 ?        00:01:43 xe_lgwr_XE
oracle     657     1  0 Mar13 ?        00:06:10 xe_ckpt_XE
oracle     659     1  0 Mar13 ?        00:01:33 xe_smon_XE
oracle     661     1  0 Mar13 ?        00:00:23 xe_reco_XE
oracle     663     1  0 Mar13 ?        00:07:44 xe_mmon_XE
oracle     665     1  0 Mar13 ?        00:04:42 xe_mmnl_XE
oracle     667     1  0 Mar13 ?        00:00:31 xe_d000_XE
oracle     669     1  0 Mar13 ?        00:00:28 xe_s000_XE
oracle     671     1  0 Mar13 ?        00:00:29 xe_s001_XE
oracle     673     1  0 Mar13 ?        00:00:29 xe_s002_XE
oracle     675     1  0 Mar13 ?        00:00:38 xe_s003_XE
oracle     722     1  0 Mar13 ?        00:00:28 xe_arc0_XE
oracle     724     1  0 Mar13 ?        00:00:46 xe_arc1_XE
oracle     726     1  0 Mar13 ?        00:00:28 xe_arc2_XE
oracle     728     1  0 Mar13 ?        00:00:29 xe_arc3_XE
oracle     730     1  0 Mar13 ?        01:19:02 xe_vkrm_XE
oracle     732     1  0 Mar13 ?        00:00:28 xe_qmnc_XE
oracle     749     1  0 Mar13 ?        00:06:40 xe_cjq0_XE
oracle     751     1  0 Mar13 ?        00:00:30 xe_q000_XE
oracle     753     1  0 Mar13 ?        00:00:23 xe_q001_XE
oracle     761     1  0 Mar13 ?        00:01:29 xe_smco_XE
oracle   11435 11260  0 23:23 ?        00:00:00 oracleXE (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   11437     1  0 23:24 ?        00:00:00 xe_w000_XE


1、PMON:进程监视器(Process Monitor)

1)这个进程负责监视其它的后台进程,在出现异常时中止或重启这些后台进程。

2)PMON还负责向oracle tns监听器注册这个实例。如果监听器未启动,PMON则会定期地试图与之联系来注册实例。

2、SMON:系统监视器(System Monitor)

SMON进程要完成所有“系统级”任务。这是一种数据库“垃圾收集器”。

3、RECO:分布式数据库恢复(Distributed Database Recovery)

两段提交(two-phase commit,2PC)期间出现异常情况时,恢复事务。

4、CKPT:检查点进程(Checkpoint Process)

CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)。

5、DBWn:数据库块写入器(Database Block Writer)

数据库块写入器(DBWn)是负责将脏块写入磁盘的后台进程。DBWn使用异步I/O将块写至磁盘。

6、LGWR:日志写入器(Log Writer)

LGWR进程负责将SGA中重做日志缓冲区的内容刷新输出到磁盘。

7、ARCn:归档进程(Archive Process)

ARCn进程的任务是:当LGWR将在线重做日志文件填满时,就将其复制到另一个位置。此后这些归档的重做日志文件可以用于完成介质恢复。

8、Qnnn:(AQ队列进程,AQ queue process)

9、MMAN:内存管理器

启用了自动设置SGA大小,由内存管理器(memory manager,MMAN)进程可以看出。

10、

启用了oracle 10g 可管理性 / 诊断特性,由可管理性监视器(manageability monitor,MMON)和可管理性监视器灯(manageability monitor light,MMNL)进程可以看出。

三、从属进程

从属进程(slave process),oracle中有两类从属进程:I/O从属进程和并行查询从属进程。