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从属进程和并行查询从属进程。