Oracle系统常见进程有哪些,作用是什么?

转至:https://vip.kingdee.com/article/336895665106415104?isKnowledge=2&productLineId=8

Oracle系统常见进程如下:

 

五个必须的ORACLE后台进程SMON、PMON、DBWn、CKPT、LGWR

 功能如下:

  Ora_pmon:是进程监视器(Process Monitor)的缩写。当取消当前的事务,或者释放进程占用的锁以及其它资源的时候,这个进程清空那些失败的进程。

  Ora_vktm:这个进程用于提供一个数据库的时钟,每秒更新;或者作为参考时间计数器,这种方式每20毫秒更新一次,仅在高优先级时可用。

  Ora_gen0:执行所需的任务,包括SQL和DML。

  Ora_diag:主要用来捕获实例中失败进程的诊断信息,并生成相应的 TRACE 文件。该进程自动启动不需要进行调整,如果该进程失效则自动重新启动。

  Ora_dbrm:Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源,为不同的会话分配不同的数据库资源。DBRM管理的资源主要包括CPU时间。

  Ora_psp0:进程生成器进程:它主要负责生成各个后台进程。

  Ora_dia0:另一个数据库诊断进程,负责检测Oracle数据库中的挂起(hang)和死锁的处理。

  Ora_mman:内存管理进程,负责内存的动态管理,分配和收回。

  Ora_dbw0:数据库写入进程,把缓冲区中的内容写入到数据文件中。

  Ora_lgwr:日志写入进程,把重做日志缓冲区中的内容写入到重做日志文。

  Ora_ckpt:检查点进程,检查点(checkpoint)是一个事件,当此事件发生时,DBWn进程将把SGA中所有改变的数据库缓冲区写入到数据文件中。CKPT进程的功能是当发生检查点事件时唤醒DBWn进程,更新数据库所有的数据文件和控制文件,并标记最新的检查点,以便下一次更新从最新的检查点开始。

  Ora_smon:系统监控进程,当失败的数据库实例重新启动时,SMON进程完成实例的恢复工作。

  Ora_reco:恢复进程,用于解决分布式数据库中由于网络或系统故障导致挂起的分布式事务。在规定的时间间隔内,本地的RECO进程会试图连接到远程数据库,并自动完成挂起的分布式事务在本地的提交或回滚。

  Ora_mmon:用于AWR ,MMON监控数据库性能,进行自动调优。

  Ora_mmnl:MMNL负责将SGA中的统计信息写入到表中。

  Ora:d000:调度进程,允许用户进程共享一定数量的服务器进程,从而支持共享服务器配置。

  Ora_s000:共享服务器进程,在共享服务器配置中,每个共享服务器进程为多个客户请求提供服务。

  Ora_qmnc:用于AQ功能;QMNC做为Qnnn的coordinator。

  Ora_cjq0:用于对job的协调,管理。

  Ora_q000:建立的进程队列中的第一个。

  Ora_q001:建立的进程队列中的第二个。

   如果是RAC,还可以看到有 ASM+字样,和RAC后台进程。

LMON:LOCK Monitor Processes 也被称为Global enqueue service monitor
    监控整个集群状况,维护GCS的内存结构。
    监控非正常终止的进程和实例。
    当实例离开和加入集群时,锁和资源的重新配置。
    管理全局的锁和资源。
    监控全局的锁资源、处理死锁和阻塞。
LMSn:Lock Monitor Services也称作GCS(Global Cache Services)processes
    LMS进程主要用来管理集群内数据库的访问,并在不同实例的buffer cache中传输块镜像,当在某个数据块上发生一致性读时,LMS负责回滚该数据块,并将它copy到请求的实例上,每个RAC节点至少有2个LMS进程。

LCK:Lock Process
   LCK进程主要用来管理实例间资源请求和跨实例调用操作,调用操作包括数据字典等对像访问,并处理非CACEH FUSION的CHACE资源请求,(例如dictionary cache或row cache的请求),由于LMS进程负责主要的锁管理功能,所以每个实例只有一个LCK进程。

LMD:Lock Monitor Deamon Process
     LMD进程主要管理对全局队列和资源的访问,并更新相应队列状态,处理来自于其它实例的资源请,每一个全局队列的当前状态存储在相应的实例共享内存中,该状态表明该实例具有相应的权利使用该资源,一个实例master的共享内存中存在一个特殊的队列,该队列记录来自其它远程实例的资源请求,当远程实例的LMD进程发出一个资源请求时,该请求指向master实例的LMD,当master实例的LMD进程受到该请求后,在共享内存中的特殊队列中监测该资源是否有无效,如果有效LMD进程更新该资源对列的状态,并通知请求资源的LMD进程该资源队列可以使用了,如果资源队列正被其它实例使用或当前无效,则LMD进程通知正在使用中的实例的LMD进程应用释放该资源,等资源释放变得有效时,master实例的LMD进程更新该资源队列的状态,并通知请求资源实例的LMD进程,该资源队列可以使用了。

posted @ 2023-02-02 13:32  study_goup  阅读(523)  评论(0编辑  收藏  举报