oracle后台进程的一些知识

oracle数据库服务器由数据库和实例两部分组成,而实例又是由内存结构和后台进程组成。实例只短暂存在于内存和CPU中。数据库是由磁盘上的物 理文件组成。因此,实例的生存期是其在内存中的存在时间,我们可以启动和停止实例。而数据库,如果不是有意删除组成数据库的文件,那么数据库一旦被创建就 可以永久存在。

oracle实例至少有5个后台进程:SMON、PMON、DBWn、LGWR、CKPT,这些后台进程不论实例中是否有会话存在,甚至是还未创建或打开数据库,这些进程总是在实例运行时存在。

1. SMON 系统监视进程
SMON(the System Monitor Process)进程负责在实例启动时恢复实例,包括清除临时段以及恢复因系统崩溃而中断的事物。SMON还可以通过合并空闲分区的方式清除数据库中的碎片

2. PMON 进程监视进程
PMON(the Process Monitor Process)进程负责监视数据库的处理情况,并负责清除死掉的进程。PMON还负责重启失败的调度进程(dispatcher process)

3. DBWR 数据库写入进程
DBWR The Database Writer Process 进程负责将脏数据块从数据缓存(database block buffer)写回磁盘.当一个事务修改数据块中的数据以后,不需要立即将数据块写回磁盘。由于Oracle所采用的先进机制,修改后的数据可以不用立即 写回,并且及时出现故障也不会丢失。因此,DBWR可以采取更有效写回方式,而不用再事务提交完之后立即写回。DBWR通常定时写回数据,除非数据缓冲区 需要清空或已满。 数据写回时,采用了最近最少使用原则(least-recently-used).对于支持异步I/O的系统,只需使用一个BWR进程即可,对不支持异步 IO的可以通过增加DBWR的个数来提升效率。

4. LGWR 日志写入进程
LGWR (the log writer process)负责将日志缓冲区中的数据写入重做日志。由于COMMIT操作依赖于LGWR写回日志(commit操作触发LGWR将日志缓冲区数据写入重做日志),因此系统性能容易受到LGWR的影响。

5.CKPT 检查点进程
CKPT(the Checkpoint Process)进程负责向DBWR进程发送信号,要求执行一次检查点,并更新数据库的所有数据和控制文件。CheckPoint(检查点),是指有 DBWR进程将所有修改过的数据缓冲区写回数据文件。CKPT是可选的,如果没有CKPT进程,则有LGWR代行这些任务。

6. ARCHn 归档进程
ARCH(the Archiver Process )负责将再现重做日志复制到归档存储器。进档RDBMS运行在ARCHIVELOG模式时ARCH才有效,如果系统没有运行在ARCHIVELOG模式, 则系统失效后可能无法恢复。最后让系统运行在ARCHIVELOG模式下,此时归档进程可能有多个。

7. RECO 恢复进程
RECO (the Recovery Process)进程用于清除分布式数据库中的未决(pending)事务,它负责分布式事务中本地部分的提交与回滚

8. Dnnn 调度进程
如果选择了Multithreaded Server选项,则对使用的每个通信协议至少有一个调度进程。调度进程(the Dispatcher Process,Dnnn)负责将用户进程的请求转发到一个可用的共享服务器进程,并负责将用户进程的请求转发到一个可用的共享服务器进程,并负责回送响 应消息。

9. Snnn 共享服务器进程
当使用共享服务器配置或MTS时,会用到共享服务器进程(the Shared Servers Process ,Snnn).这些进程如同专用服务器进程(Dedicated Server Process),但可以被多个用户共享。

10. LMS Oracle RAC 锁管理服务
使用RAC时,该服务用语管理集群中不同节点间的锁.

11. QMNn 队列管理进程
使用高级队列选项时(advanced queueing option),队列管理进程 (Queue Manager Process )用于管理作业队列,队列数目可以达到10个,

下面是我虚拟机启动都看到的oracle进程,sid是gbk:

oracle 16812 1 0 Sep25 ? 00:00:11 ora_pmon_gbk
oracle 16814 1 0 Sep25 ? 00:00:01 ora_psp0_gbk
oracle 16816 1 0 Sep25 ? 00:00:01 ora_mman_gbk
oracle 16818 1 0 Sep25 ? 00:00:06 ora_dbw0_gbk
oracle 16820 1 0 Sep25 ? 00:00:11 ora_lgwr_gbk
oracle 16822 1 0 Sep25 ? 00:00:49 ora_ckpt_gbk
oracle 16824 1 0 Sep25 ? 00:00:07 ora_smon_gbk
oracle 16826 1 0 Sep25 ? 00:00:00 ora_reco_gbk
oracle 16828 1 0 Sep25 ? 00:00:20 ora_cjq0_gbk
oracle 16830 1 0 Sep25 ? 00:00:12 ora_mmon_gbk
oracle 16832 1 0 Sep25 ? 00:00:21 ora_mmnl_gbk
oracle 16834 1 0 Sep25 ? 00:00:00 ora_d000_gbk
oracle 16836 1 0 Sep25 ? 00:00:00 ora_s000_gbk
oracle 16840 1 0 Sep25 ? 00:00:04 ora_arc0_gbk
oracle 16842 1 0 Sep25 ? 00:00:03 ora_arc1_gbk
oracle 16861 1 0 Sep25 ? 00:00:00 ora_qmnc_gbk
oracle 16863 1 0 Sep25 ? 00:00:00 ora_q000_gbk
oracle 16905 1 0 Sep25 ? 00:00:00 ora_q001_gbk
oracle 17780 1 0 14:28 ? 00:00:00 ora_q002_gbk
oracle 31049 1 0 Sep25 ? 00:00:00 /app/oracle/product/10.2/db_1/bin/tnslsnr LISTENER -inherit

你可能感兴趣的:(oracle)