当前位置:  数据库>oracle

ORACLE实例的后台进程

    来源: 互联网  发布时间:2014-09-07

    本文导语:  下面就来介绍一下这些在后台辛勤工作的进程们。系统检测器(System Monitor,SMON)、进程监视器(Process Monitor,PMON)、数据库写入器(Database Writer,DBWn)、日志写入器(Log Writer,LGWR)、检查点进程(Checkpoint Process,CKPT) 1、SMON:...

下面就来介绍一下这些在后台辛勤工作的进程们。系统检测器(System Monitor,SMON)、进程监视器(Process Monitor,PMON)、数据库写入器(Database Writer,DBWn)、日志写入器(Log Writer,LGWR)、检查点进程(Checkpoint Process,CKPT)

1、SMON:安装和打开数据库。通过查找和验证数据库控制文件来安装数据库。此后,通过查找和验证所有数据文件和联机日志文件打开数据库。一旦打开数据库并使数据库处于使用状态,SMON就负责执行各种内部管理任务。

2、PMON:用户会话是连接到服务器进程的用户进程。服务器进程在会话创建时启动,在绘画结束时销毁。如果会话正常结束,则用户执行的任何工作都会有序完成,服务器进程将终止。如果非正常终止会话,PMON将销毁服务器进程,将其PGA内存返回给操作系统,并回滚任何尚在进行的未提交完成的事务。

3、DBWn:会话不直接将数据写入磁盘,而是写入到数据库高速缓存区。然后又数据库写入器负责将缓冲区写入到磁盘。一般来说一个实例可能有多个写入器。依次为DBW0,DBW1等。默认情况是8个CPU对应一个数据库写入器。

通常情况下,Oracle会尽可能的减少写入缓冲区的数量。因为IO操作会降低性能。真实情况中,如果出现会话对某些缓冲区执行写作,那么通常还会有会话对其进行操作。这样,就没有必要将其写入到磁盘了。

DBWn采用极懒算法执行写入:尽可能少,在尽可能少。有四种情况需要进行些操作:没有可用缓冲区、脏缓冲区过多、遇到三秒超时,遇到检查点。
没有可用缓冲区:服务器进程在将块复制到高速缓冲区之前,需要查找可用缓冲区。可用缓冲区是既不脏也未被占用的缓冲区。如果查找可用缓冲区时间过长(Oracle内部自行设定),则会将脏缓冲区写入到磁盘,以清理缓冲区。

脏缓冲区数量过多:在什么情况下谓多,有Oracle的内部阈值确定,如果超过了,就会将一些缓冲区写到磁盘

三秒超时:DBWn每三秒会对一些缓冲区清理一次。即使系统处于闲置状态,也会清理缓冲区。
请求检查点:遇到检查点时,会写入所有的缓冲区数据。此时系统性能下降。检查点只有在不得已的情况下才会设置。关闭数据库和关闭实例时会设置检查点,也可以使用命令来设置。
在这里需要注意一点,在会话提交事务时,DBWn什么也不做,DBWn按照自己的方式执行。此时需要执行的操作是:写入日志缓冲区的数据。

4、LGWR:日志写入器将日志缓冲区的内容写入到磁盘上的联机日志文件中。当会话发出COMMIT时,LGWR会实时写入:在LGWR将缓冲区写入磁盘时,会话将会被挂起。在Oracle体系结构中,LGWR是最大的瓶颈之一。DML的速度不能超过LGWR将更改矢量写入到磁盘的速度。在以下三种情况发生时,LGWR将转储日志缓冲区:

提交写入时:已提交事务的每个更改矢量都可以再磁盘上的重做日志中得到,并可以再此后应用于数据文件备份。

日志缓冲区的占用率达到1/3:在应用程序中,通常在非常短的时间内就能填充满日志缓冲区的1/3,这时强制LGWR将更改矢量准实时的写入磁盘。此后,当会话发生COMMIT时,几乎没有什么要写入的内容:COMMIT可以立即完成。

DBWn需要将脏缓冲区从数据库高速缓存区写入到数据文件时:在DBWn执行写入操作之前,总会执行LGWR的写入操作。目的是:始终可以逆转未提交的事务。DBWn可能会将未提交的事务写入数据文件,如果能过获取逆转事务所需的数据和更改矢量,这样做就不会产生问题。所以,在DBWn执行写入之前,需要执行LGWR的写入,以确保这些数据进入重做日志文件中。

5、CKPT:系统崩溃后,必须从重做日志提取与脏缓冲区对应的所有更改矢量,并将其应用于数据块。这就是恢复过程。频繁的检查点确保:可以将脏缓冲区快速写入磁盘,从而最大程度的减少崩溃发生后必须应用的重做量。在Oracle8i之后,采用增量检查点机制,DBWn以固定速率写出脏缓冲区,因此DBWn和LGWR之间始终有一个可以预见的差距。使用增量检查点时系统性能更加平稳,恢复时间可以预测。

当然,在10g之后,Oracle又新增了几个进程,这里简单介绍一下:
MMON:管理监视器(Maniageability Monitor),数据块的自我监视和自我调整的支持进程。
MMNL:MMON的辅助进程。
MMAN:支持内存分布的自动调整。

    
 
 

您可能感兴趣的文章:

  • Oracle数据库后台进程的功能分析
  • Oracle 后台进程初探
  • Linux上建立第二个ORACLE实例分析
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • oracle的存储过程实例讲解
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • oracle分页存储过程 oracle存储过程实例
  • C#连接Oracle数据库的实例方法
  • Oracle数据库实例两则
  • Oracle 删除归档日志实例
  • Oracle 10g for solaris准备工作和实例的删除
  • Oracle 11G 无法连接到数据库实例故障排除
  • Linux下设置Oracle 10g 服务以及实例自动启动
  • oracle group by语句实例测试
  • Oracle数据库异构服务原理及实例说明
  • Linux下删除Oracle实例
  • 与Oracle RAC相关的连接配置写法实例
  • Oracle监听器Server端与Client端配置实例
  • Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
  • oracle删除已存在的表的实例
  • Aix 5.3下自动备份Oracle多个实例
  • Oracle数据库安全性管理基本措施实例解析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 10G进程体系学习笔记
  • oracle查看被锁的表和被锁的进程以及杀掉这个进程
  • 通过进程id号知道一个Oracle会话所占用的内存
  • Oracle SMON进程的操作流程
  • Oracle中最易忽视的两个重要进程
  • 小技巧 Oracle杀死死锁进程问题的解决
  • Oracle数据库进程数与会话数的更改
  • top 显示的%MEM 是什么意思呢?我把这些值加起来超过了100%,这怎么回事呢?(我运行oracle,它的多个进程加起来就超过了。。。)
  • Oracle查看和修改连接数(进程/会话/并发等等)
  • 如何查询占CPU高的oracle进程
  • 探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句
  • Oracle技术平台助力数字化城市管理进程
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3