zoukankan      html  css  js  c++  java
  • Oracle 全部后台进程简介

    LGWR,DBWR,SMON,PMON,CKPT是必需的五个后台进程。ARCH是最重要的可选后台进程。
    最重要的六个进程:
    1.LGWR
    重做日志写进程,LOG write 负责将重做日志缓冲区记录顺序写入重做日志文件。LGWR在下列情况下将重做日志缓冲区记录(内存)顺序写入重做日志文件(外存)中5种情况:
    某个事务被提交时,重做日志缓冲区中变化记录超过1M,当重做日志缓冲区中所存记录已经超过缓冲区容量的三分之一时,在DBWR将数据库高速缓冲区中修改过的数据块写到数据文件之前;每3秒。
    在ORACLE 11G中:LGWR写日志条件变为三个:COMMIT,达到缓冲区三分之一,DBWR写之前.
    11G实验步骤是:在一个会话SQLPLUS中开启时间提示,做插入:insert into test values(9,999888); 另一个会话做:strings /u01/oradata/bys3/redo03.log| grep 999888
    可以照这思路多做几次,能发现LGWR不是3秒超时就写日志的。  但是用DTRACE来跟踪LGWR进程,会发现LGWR确实是每3秒sleep,唤醒这样的。
    2.DBWR
    数据库写进程,DBWR/DBWn,负责将数据库高速缓冲区中数据写到数据文件上。
    DBWR在下列情况下将数据库高速缓冲区中的数据写到数据文件:8种情况
    当脏缓冲区的数量超过所设定的限额;所设定的时间间隔已到;当有进程需要数据库高速缓冲区却找不到空闲缓冲区时;校验点发生时;某个表被删除或截断时;某个被表空间被设置为只读状态时;对某表空间进行联机备份时;某个临时表空间被设置为只脱机状态或正常状态等。
    3.SMON
    系统监管进程,如系统崩溃、断电后重新开启时,SMON将自己执行恢复工作。步骤为:
    执行前滚,ROLL FORWARD,将写入重做日志文件但未写入数据文件中的提交数据写到数据文件中(SCN)
    前滚完成后立即打开数据库,此时可以登录并使用数据库,这时数据文件中可能有未提交数据,回滚没提交的事务(数据)。
    SMON还进行回收或组合数据文件中相连的空闲区,释放临时段等磁盘空间维护工作。4.PMON
    进程监督进程,当某个进程崩溃时,如未正常退出SQLPLUS等,PMON负责如下清理工作:
    回滚用户当前的事务,释放用户所加的所有表一级和行一 级的锁,释放用户所有其它资源。同时负责:动态注册监听,清除用户进程、服务器进程
    5.CKPT
    检查点进程,checkpoint 检查点,检查点事件是当DBWR进程把在SGA中所有已经改变的数据库调整缓冲中的数据(包括提交和未提交数据)写到数据文件上时产生。  检查点可提高效率。因为所有到检查点为止的变化的数据都已经写入数据文件中,在实例恢复时检查点之前的重做日志记录就不再需要,实例的恢复速度就加快了。一般的检查点间隔在半小时以上。
    6.ARCH/ARCn
    归档日志进程,最重要的可选后台进程,因为如数据库数据文件丢失或损坏,一般数据库要进行完全恢复,ORACLE数据库将运行在归档模式。
    #######################################################################################
    其它进程
    7.MMAN 
    内存管理进程,负责内存的动态管理,分配和收回。Oracle 10g提供了一个新的初始化参数:sga_target来启动ASMM,该参数定义了整个SGA的总容量。
    同时,初始化参数statistics_level必须设置为typical或all才能启动ASMM,如果设置为basic,则关闭ASMM。
    ASMM只能自动调整5个内存池的大小,它们是:shared pool、buffer cache、large pool、java pool和stream pool。我们不再需要设置这五个初始化参数。
    而其他的内存池,比如log buffer、keep buffer cache等仍然需要DBA手工进行调整。
    8.CJQ0  job
     任务协调进程,负责数据库中JOB的自动执行。
    9.J001
    job具体执行进程,接受CJQ0分发的job任务。
    10.VKTM
    这个进程用于提供一个数据库的时钟,每秒更新;或者作为参考时间计数器,这种方式每20毫秒更新一次,仅在高优先级时可用。通过VKTM进程,数据库可以降低和操作系统的交互.
    11. DIAG
    主要用来捕获实例中失败进程的诊断信息,并生成相应的TRACE文件。该进程自动启动不需要进行调整,如果该进程失效则自动重新启动。
    12.DBRM
     Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源,为不同的会话分配不同的数据库资源。DBRM管理的资源主要包括CPU时间。
    13.RECO
    分布式数据库恢复:基于2PC分布式协议,允许多个不同的修改实现原子提交,但是在真正提交前,出现网络失败等错误,事务成为一个可疑的分布式事务.此时就需要RECO来负责联系事务协调器来发现协调的结果。在这之前事务会保持未提交状态.当恢复网络或者错误解决后,RECO可能会提交事务,也可能将事务回滚
    14.QMNC Q002
    高级队列进程:QMNC会监视高级队列.并告诉从队列中删除等待消息的"出队进程":已经有一个消息变为可用.它们还要负责队列传播
    15.SMCO 
    空间管理协调器进程:协调数据库的主动空间管理。
    16.PSP0 
    进程生成器进程:它主要负责生成各个后台进程.
    17.DIA0 
    另一个数据库诊断进程,负责检测Oracle数据库中的挂起(hang)和死锁的处理。
    18.W000
    命名为W000,W001,W002.....,由smcO动态产生执行上述相关任务。
    19.MMON 
    manageability monitor,与oracle10g的新特性--诊断功能相关,负责管理一些后台任务,比收集最近修改过的 SQL 对象的统计信息
    20.MMNL
    与oracle10g的新特性--诊断功能相关,会根据调度从SGA将统计结果--如会话的历史信息,刷新输出至数据库表。
    21.VKRM 
    Virtual Scheduler for Resource Manager Process
    22.GEN0
    Performs required tasks including SQL and DML
    查询后台进程:
    LINUX:
    [oracle@bys001 ~]$ ps -ef|grep ora_
    oracle   21393     1  0 09:27 ?        00:00:07 ora_pmon_bys1
    oracle   21397     1  0 09:27 ?        00:02:59 ora_vktm_bys1
    oracle   21403     1  0 09:27 ?        00:00:03 ora_gen0_bys1
    oracle   21407     1  0 09:27 ?        00:00:03 ora_diag_bys1
    oracle   21411     1  0 09:27 ?        00:00:03 ora_dbrm_bys1
    oracle   21415     1  0 09:27 ?        00:00:06 ora_psp0_bys1
    oracle   21419     1  0 09:27 ?        00:00:11 ora_dia0_bys1
    oracle   21423     1  0 09:27 ?        00:00:03 ora_mman_bys1
    oracle   21427     1  0 09:27 ?        00:00:06 ora_dbw0_bys1
    oracle   21431     1  0 09:27 ?        00:00:06 ora_lgwr_bys1
    oracle   21435     1  0 09:27 ?        00:00:12 ora_ckpt_bys1
    oracle   21439     1  0 09:27 ?        00:00:04 ora_smon_bys1
    oracle   21443     1  0 09:27 ?        00:00:01 ora_reco_bys1
    oracle   21447     1  0 09:27 ?        00:00:09 ora_mmon_bys1
    oracle   21451     1  0 09:27 ?        00:00:12 ora_mmnl_bys1
    oracle   21455     1  0 09:27 ?        00:00:01 ora_d000_bys1
    oracle   21459     1  0 09:27 ?        00:00:01 ora_s000_bys1
    oracle   21478     1  0 09:27 ?        00:00:02 ora_arc0_bys1
    oracle   21482     1  0 09:27 ?        00:00:02 ora_arc1_bys1
    oracle   21486     1  0 09:27 ?        00:00:01 ora_arc2_bys1
    oracle   21490     1  0 09:27 ?        00:00:01 ora_arc3_bys1
    oracle   21494     1  0 09:27 ?        00:00:01 ora_qmnc_bys1
    oracle   21522     1  0 09:27 ?        00:00:10 ora_cjq0_bys1
    oracle   21526     1  0 09:27 ?        00:02:16 ora_vkrm_bys1
    oracle   21546     1  0 09:27 ?        00:00:01 ora_q000_bys1
    oracle   21550     1  0 09:27 ?        00:00:02 ora_q001_bys1
    oracle   21596     1  0 09:32 ?        00:00:03 ora_smco_bys1
    oracle   26119     1  0 16:12 ?        00:00:00 ora_w000_bys1
    oracle   26306     1  0 16:29 ?        00:00:00 ora_j000_bys1
    oracle   26310     1  0 16:29 ?        00:00:00 ora_j001_bys1
    WINDOWS下需要在数据库中查询:
    SQL> select program from v$session where program like 'ORACLE.EXE%';
     
    PROGRAM
    ----------------------------------------------------------------
    ORACLE.EXE (PMON)
    ORACLE.EXE (VKTM)
    ORACLE.EXE (GEN0)
    ORACLE.EXE (DIAG)
    ORACLE.EXE (DBRM)
    ORACLE.EXE (PSP0)
    ORACLE.EXE (DIA0)
    ORACLE.EXE (MMAN)
    ORACLE.EXE (DBW0)
    ORACLE.EXE (LGWR)
    ORACLE.EXE (CKPT)
    ORACLE.EXE (SMON)
    ORACLE.EXE (RECO)
    ORACLE.EXE (MMON)
    ORACLE.EXE (MMNL)
    ORACLE.EXE (Q000)
    ORACLE.EXE (ARC0)
    ORACLE.EXE (ARC1)
    ORACLE.EXE (ARC2)
    ORACLE.EXE (ARC3)
    ORACLE.EXE (QMNC)
    ORACLE.EXE (Q002)
    ORACLE.EXE (SMCO)
    ORACLE.EXE (CJQ0)
    ORACLE.EXE (J001)
    ORACLE.EXE (J000)
    ORACLE.EXE (VKRM)
    ORACLE.EXE (W000)
    ---------------------
    作者:还不算晕
    来源:CSDN
    原文:https://blog.csdn.net/haibusuanyun/article/details/11329457
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    Django----抽屉项目 笔记
    Django验证码【附源码】
    C语言--循环控制结构
    javascript 流程控制及函数
    yield和yield from
    python面试题(转)
    断言assert用法
    javascript基本语法
    python经典一百道习题(转自奶酪博客)
    functools模块中的函数
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11198414.html
Copyright © 2011-2022 走看看