一 进程分类:

1、服务器进程(server process): 依据客户请求完毕工作。如接收和处理应用发送的SQL语句

2、后台进程(background process): 随数据库而启动,用于完毕各种维护任务。

如将块写到磁盘(DBWn)、

   维护在线重做日志(LGWR)、清理异常终止的进程等。

3、从属进程(slave process):类似于后台进程,只是它们要代表后台进程或server进程完毕一些额外工作。

二 主要讲一下后台进程:

来浏览一下主要进程:

SQL> select paddr, name, description
2 from v$bgprocess
3 where paddr <> '00'
4 order by paddr desc
5 /

PADDR                         NAME                    DESCRIPTION

---------------- ----- ----------------------------------------------------------------

0000000084C92190  CJQ0  Job Queue Coordinator

0000000084C8D050 SMCO  Space Manager Process

0000000084C8C010 QMNC  AQ Coordinator

0000000084C87F10 MMNL  Manageability Monitor Process 2

0000000084C86ED0 MMON  Manageability Monitor Process

0000000084C85E90 RECO  distributed recovery

0000000084C84E50 SMON  System Monitor Process

0000000084C83E10 CKPT  checkpoint

0000000084C82DD0 LGWR  Redo etc.

0000000084C81D90 DBW0  db writer process 0

0000000084C80D50 MMAN  Memory Manager

PADDR                       NAME              DESCRIPTION

---------------- ----- ----------------------------------------------------------------

0000000084C7FD10 DIA0  diagnosibility process 0

0000000084C7ECD0 PSP0  process spawner 0

0000000084C7DC90 DBRM  DataBase Resource Manager

0000000084C7CC50 DIAG  diagnosibility process

0000000084C7BC10 GEN0  generic0

0000000084C7ABD0 VKTM  Virtual Keeper of TiMe process

0000000084C79B90 PMON  process cleanup

1. DBWR进程

该进程运行将缓冲区写入数据文件,是负责缓冲存储区管理的一个ORACLE后台进程。当缓冲区中的一缓冲区被改动,它被标志为“弄脏”。DBWR的主要任务是将“弄脏”的缓冲区写入磁盘。使缓冲区保持“干净”。因为缓冲存储区的缓冲区填入数据库或被用户进程弄脏,未用的缓冲区的数目降低。当未用的缓冲区下降到非常少,以致用户进程要从磁盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将管理缓冲存储区,使用户进程总可得到未用的缓冲区。

ORACLE採用LRU(LEAST RECENTLY USED)算法(近期最少使用算法)保持内存中的数据块是近期使用的,使I/O最小。

触发DBWR进程的条件有:

              1).  DBWR超时,大约3秒

              2).  系统中没有多余的空缓冲区来存放数据

              3).  CKPT 进程触发DBWR

       在有些平台上。一个实例可有多个DBWR。在这种实例中,一些块可写入一磁盘,还有一些块可写入其他磁盘。

2. LGWR进程

该进程将日志缓冲区写入磁盘上的一个日志文件,它是负责管理日志缓冲区的一个ORACLE后台进程。

触发LGWR进程的条件有:

  1). 用户提交

  2). 有1/3重做日志缓冲区未被写入磁盘

  3). 有大于1M的重做日志缓冲区未被写入磁盘

  4). 3秒超时

  5). DBWR 须要写入的数据的SCN大于LGWR记录的SCN。DBWR 触发LGWR写入。

日志缓冲区是一个循环缓冲区。

当LGWR将日志缓冲区的日志项写入日志文件后。server进程可将新的日志项写入到该日志缓冲区。

LGWR 通常写得非常快,可确保日志缓冲区总有空间可写入新的日志项。

注意:有时候当须要很多其它的日志缓冲区时,LWGR在一个事务提交前就将日志项写出,而这些日志项仅当在以后事务提交后才永久化。

ORACLE使用高速提交机制。当用户发出COMMIT语句时。一个COMMIT记录马上放入日志缓冲区,但对应的数据缓冲区改变是被延迟,直到在更有效时才将它们写入数据文件。当一事务提交时,被赋给一个系统改动号(SCN),它同事务日志项一起记录在日志中。因为SCN记录在日志中,以致在并行server选项配置情况下,恢复操作能够同步。

3. PMON 进程监视进程

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

程(dispatcher process)

4. SMON进程

SMON是Oracle数据库至关重要的一个后台进程, 该进程实例启动时运行实例恢复。还负责清理不再使用的暂时段, 是一种用于库的“垃圾收集者”。在具有并行server选项的环境下。SMON对有故障CPU或实例进行实例恢复。SMON进程有规律地被呼醒,检查是否须要,或者其他进程发现须要时能够被调用。

它做的工作包含例如以下7件:

(1)清理暂时表空间:伴随这“真正”的暂时表空间的出现。清理暂时表空间的杂事已经减轻了,但它还没全然消失。比如,当建立一个索引,在创建期间分配给索引的扩展区被标志为TEMPORARY。假设Create Index会话因某些原因异常中断。SMON负责清理他们。其它操作创建的暂时扩展区。SMON相同会负责。

       (2) 接合空暇空间:假设你正使用数据字典管理表空间,SMON负责把那些在表空间中空暇的而且互相是邻近的extent接合成一个较大的空暇扩展区。这发生仅在带有默认的pctincrease设置为非零的存储子句的字典管理表空间。

(3) 把对于不可用文件的事务恢复成活动状态:它的角色类似在库启动期间。这时。由于文件不能用于恢复,SMON恢复在实例/崩溃恢复期间被跳过的故障事务。比如。文件可能已经在不可用或没装载的磁盘上。当文件变可用了,SMON将恢复它。

(4)运行一个RAC中故障节点的实例恢复:在一个oracle RAC配置中。当群集中的一个库实例失败(比如。实例正运行的机器故障了),一些群集中的其它节点将开启故障的实例的重做日志文件,为故障实例运行全部数据的恢复。

       (5)清理OBJ$:OBJ$是一个包括库中差点儿每个对象(表,索引,触发器,视图等等)的记录的行级数据字典表。

很多次。这儿存在的记录代表已删对象,或代表不在这儿的对象,在oracle的信赖机制中被使用。SMON是删除这些不在被须要的行的进程。

       (6)收缩回滚段:SMON将运行回滚段的自己主动收缩到它的optimal尺寸,假设它被设置。

       (7)“脱机”回滚段:对于DBA来,让一个有active事务的回滚段,脱机或不可用。这事是可能的。Active事务正使用这脱机回滚段是可能的。

在这情况下,回滚不是真正的脱机。它被标志为“悬挂offline”。在后台进程中,SMON将周期性尽力让它真正脱机。直到成功。

SMON做更多事情,譬如存在DBA_TAB_MONITORING视图中的监控统计数据的洗刷。在SMON_SCN_TIME表中发现的时间戳定位信息的SCN的洗刷。等等。SMON在期间能消耗非常多CPU,这应该被觉得是正常的。

SMON周期性的苏醒(或被其它后台进程叫醒)来运行这些管家的家庭杂事。

5.CKPT 检查点进程

       CKPT(the Checkpoint Process)进程负责向DBWR进程发送信号,要求运行一次检查点,并更新数据库的全部数据和控制文件。

CheckPoint(检查点),是指有DBWR进程将全部改动过的数据缓冲区写回数据文件。CKPT是可选的,假设没有CKPT进程,则有LGWR代

行这些任务。

6. ARCHn 归档进程

      ARCH(the Archiver Process )负责将再现重做日志拷贝到归档存储器。进档RDBMS执行在ARCHIVELOG模式时ARCH才有效,假设

系统没有执行在ARCHIVELOG模式。则系统失效后可能无法恢复。最后让系统执行在ARCHIVELOG模式下,此时归档进程可能有多个。

SQL>archive log list          //查看是否为归档模式

      能够再数据库Mount 模式下开启归档

      SQL>alter database archivelog; //开启

      SQL>alter database noarchivelog;//关闭

7. RECO 恢复进程

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

------------------------------

By    Dylan.

Oracle 后台进程介绍的更多相关文章

  1. 【ora10,4】oracle后台进程介绍:

    一.SMON(System MONitor) 系统监控进程:      在数据库启动过程中,SMON排在CKPT进程之后,在Oracle9i中排在第六号的位置: PMON started with p ...

  2. Oracle 后台进程(二)DBWR进程

    一.DBWR进程介绍 DBWR进程执行将数据块缓冲区写入数据文件的工作,是负责缓冲存储管理的一个Oracle后台进程.在修改DB Cache中的某个缓冲区时,会将它标志为“DIRTY”,DBWR的主要 ...

  3. oracle后台进程详解

    oracle后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员.他们并不会直接给用户提供服务.   一:database write--数据写入  DBW ...

  4. 【体系结构】Oracle参数介绍

    [体系结构]Oracle参数介绍 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...

  5. Oracle asm介绍和安装linux+oracle10g+asm过程

    Oracle asm介绍和安装linux5.2+oracle10g+asm过程   1)ASM(自动存储管理)的来由:   ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来 ...

  6. Oracle Dataguard 介绍

    Oracle DataGuard介绍 一. DataGuard的基本原理 当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件里记录此次更改.在DataGuard中 ...

  7. Oracle 后台进程 详细说明

    一. 进程概述 先来看一下Oracle 11g 的架构图. 看起来比较模糊,我已经上传到了csdn 的下载. 是个pdf 文件, 2m 多. 那个看起来比较清楚. 也对每个进程做了解释. 下载地址:O ...

  8. [Oracle] Lob介绍

    [Oracle] Lob介绍   像Oracle这种关系型数据库,比较擅长处理结构化的数据,那么对于非结构化的数据,Oracle是怎么处理和存储的呢?Lob (Large Object)是Oracle ...

  9. oracle regexp_like介绍和例子

    oracle regexp_like介绍和例子 学习了:http://www.cnblogs.com/einyboy/archive/2012/08/01/2617606.html ORACLE中的支 ...

随机推荐

  1. VC 获取控制台窗体的句柄(hWnd)

    在Windows中,句柄是一个系统内部数据结构的引用. 比如当你操作一个窗体.或说是一个Delphi窗体时,系统会给你一个该窗体的句柄,系统会通知你:你正在操作142号窗体.就此你的应用程序就能要求系 ...

  2. https 证书 certbot-auto执行错误

    报错:ImportError: /root/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindi ...

  3. bzoj5216: [Lydsy2017省队十连测]公路建设

    题目思路挺巧妙的. 感觉应该可以数据结构一波,发现n很小可以搞搞事啊.然后又发现给了512mb,顿时萌生大力线段树记录的念头 一开始想的是记录节点的fa,然后发现搞不动啊?? 但其实边肯定最多只有n- ...

  4. lightoj--1294--Largest Box(三分)

    Largest Box Time Limit: 2000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu Submit Sta ...

  5. Http multipart/form-data多参数Post方式上传数据

    最近,工作中遇到需要使用java实现http发送get.post请求,简单的之前经常用到,但是这次遇到了上传文件的情况,之前也没深入了解过上传文件的实现,这次才知道通过post接口也可以,是否还有其他 ...

  6. 【译文】采用chrome的DevTool中TimeLine和profile工具提升Web app性能

    ->译文,原文在这里<- 本文地址: http://www.cnblogs.com/blackmanba/p/web-perfomance-with-Chrome-DevTools.htm ...

  7. Linux crontab 定时任务设置

    第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 下面是crontab的格式:分 时 日 月 星期 要运行的命令 这 ...

  8. iOS性能优化专题

    http://wereadteam.github.io/2016/05/03/WeRead-Performance/ https://www.cnblogs.com/oc-bowen/p/599999 ...

  9. WiFi无线连接过程中有哪几个主要步骤?

    WiFi无线连接过程中有哪几个主要步骤?[1]在使用WIFI功能时,经常性的操作是打开手机上的WiFi设备,搜索到心目中的热点,输入密码,联网成功,成功上网.这个看似简单的过程,背后却是隐藏着大量的无 ...

  10. servlet中地址详细分析

    path路径的写法 假设; 项目名为day01 webroot下存放静态文件demo.html 转发 request.getRequestDispatcherType("path" ...