Oracle数据库进程之后台进程详解

楼主
我是社区第2639位番薯,欢迎点我头像关注我哦~
      本文我们主要介绍一下Oracle数据库的后台进程的相关知识,我们知道,Oracle实例包括两部分:SGA 和一组后台进程。后台进程执行保证数据库运行所需的实际维护任务。
        例如,有一个进程为我们维护块缓冲区缓存,根据需要将块写出到数据文件。另一个进程负责当在线重做日志文件写满时将它复制到一个归档目标。另外还有一个进程负责在异常中止进程后完成清理,等等。每个进程都专注于自己的任务,但是会与所有其他进程协同工作。例如,负责写日志文件的进程填满一个日志后转向下一个日志时,它会通知负责对填满的日志文件进行归档的进程,告诉它有活干了。
        可以使用一个V$视图查看所有可能的Oracle 后台进程,确定你的系统中正在使用哪些后台进程:
  • SQL> select paddr, name, descriptionfrom v$bgprocess order by paddr desc;
  • PADDR   NAME  DESCRIPTION
  • -------- ---------------------------------------------------------------------
  • 3621D49C QMNC  AQ Coordinator
  • 3621CEE8 ARC2  Archival Process 2
  • 3621C934 ARC1  Archival Process 1
  • 3621C380 ARC0  Archival Process 0
  • 3621A148 MMNL  Manageability Monitor Process 2
  • 36219B94 MMON  Manageability Monitor Process
  • 362195E0 CJQ0  Job Queue Coordinator
  • 3621902C RECO  distributed recovery
  • 36218A78 SMON  System Monitor Process
  • 362184C4 CKPT  checkpoint
  • 36217F10 LGWR  Redo etc.
  • PADDR   NAME  DESCRIPTION
  • -------- ---------------------------------------------------------------------
  • 3621795C DBW0  db writer process 0
  • 362173A8 MMAN  Memory Manager
  • 36216DF4 PSP0  process spawner 0
  • 36216840 PMON  process cleanup
  • 00      DIAG  diagnosibility process
  • 00      FMON  File Mapping Monitor Process
  • 00      LMON  global enqueue servicemonitor
  • 00      LMD0  global enqueue servicedaemon 0
  • .....
  • 00      ASMB  ASM Background
  • 00      GMON  diskgroup monitor
  • 157 rows selected.

        注意:这个视图中PADDR 不是00 的行都是系统上配置和运行的进程(线程)。有两类后台进程:有一个中心(focused)任务的进程(如前所述)和完成各种其他任务的进程(即工具进程)。例如,内部作业队列( jobqueue)有一个工具后台进程,可以通过DBMS_JOB 包使用它。这个进程会监视作业队列,并运行其中的作业。在很多方面,这就像一个专用服务器进程,但是没有客户连接。
        下面会分析各种后台进程,先来看有中心任务的进程,然后再介绍工具进程。
        中心后台进程
        图5-4 展示了有一个中心(focused)用途的Oracle 后台进程。

        启动实例时也许不会看到所有这些进程,但是其中一些主要的进程肯定存在。如果在ARCHIVELOG 模式下,你可能只会看到ARCn(归档进程),并启用自动归档。如果运行了Oracle RAC,这种Oracle 配置允许一个集群中不同机器上的多个实例装载并打开相同的物理数据库,就只会看到LMD0、LCKn、LMON 和LMSn。
        意为简洁起见,图5-4 中没有画出共享服务器调度器(Dnnn)和共享服务器(Snnn)进程。因此,图5-4 大致展示了启动Oracle 实例并装载和打开一个数据库时可能看到哪些进程。例如,在我的Linux 系统上,启动实例后,有以下进程:
  • [oracle@db1 ~]$ ps -ef|grep 'ora_.*_dave*'
  • oracle   4123     1  0 20:13 ?        00:00:05 ora_pmon_dave1
  • oracle   4125     1  0 20:13 ?        00:00:05 ora_psp0_dave1
  • oracle   4127     1  0 20:13 ?        00:00:02 ora_mman_dave1
  • oracle   4129     1  0 20:13 ?        00:00:05 ora_dbw0_dave1
  • oracle   4131     1  0 20:13 ?        00:00:21 ora_lgwr_dave1
  • oracle   4133     1  0 20:13 ?        00:00:13 ora_ckpt_dave1
  • oracle   4135     1  1 20:13 ?        00:01:12 ora_smon_dave1
  • oracle   4137     1  0 20:13 ?        00:00:04 ora_reco_dave1
  • oracle   4139     1  0 20:13 ?        00:00:16 ora_cjq0_dave1
  • oracle   4141     1  1 20:13 ?        00:01:33 ora_mmon_dave1
  • oracle   4143     1  0 20:13 ?        00:00:08 ora_mmnl_dave1
  • oracle   4145     1  0 20:13 ?        00:00:00 ora_d000_dave1
  • oracle   4147     1  0 20:13 ?        00:00:00 ora_s000_dave1
  • oracle   4156     1  0 20:13 ?        00:00:01 ora_arc0_dave1
  • oracle   4158     1  0 20:13 ?        00:00:05 ora_arc1_dave1
  • oracle   4163     1  0 20:14 ?        00:00:03 ora_qmnc_dave1
  • oracle   4167     1  0 20:15 ?        00:00:24 ora_q000_dave1
  • oracle   4169     1  020:15 ?        00:00:00 ora_q001_dave1
  • oracle   5109     1  1 21:48 ?        00:00:00 ora_j000_dave1
  • oracle   5141  5111  0 21:49 pts/4    00:00:00 grep ora_.*_dave2*

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表