oracle 后台进程管理,ORACLE实例的后台进程

ORACLE实例的后台进程

更新时间:2009年09月29日 23:01:20   作者:

Oralce实例由内存和后台进程构成。实例后台进程在启动实例时启动,在终止实例时终止运行。

下面就来介绍一下这些在后台辛勤工作的进程们。系统检测器(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:支持内存分布的自动调整。

相关文章

1a1b05c64693fbf380aa1344a7812747.png

从家回来,继续我那工作,打开oracle客户端PLSQL,呀,突然连接不上了2012-11-11

4f55910a645b073bc4fc65dc10dc14bd.png

增加表空间大小:一种是为表空间增加数据文件/另一种方法是增加表空间原有数据文件尺寸,感兴趣的朋友可以了解下,或许对你有所帮助2013-01-01

0ea3c7666119d5615e582f823fb3fad6.png

Oracle数据库快照的使用...2007-03-03

4f96a78db829b1556ff16de21e013c7a.png

如果你是初学者,你有必要看看这篇文章。2009-06-06

8cc1031babc6aff2319f1c6af8544aa0.png

这篇文章主要介绍了plsql配置tnsnames.ora的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-09-09

0c932a99bb7b6f23c937db507070cc7b.png

这篇文章主要介绍了Oracle 11.2.0.4打补丁的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-08-08

cca732bf65a93ed2ec0ac80c638460fe.png

如何实现oracle中字段的自增,下面用一个例子来说明,有此需求的各位朋友可以参考下2013-11-11

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要为大家详细介绍了centos下Oracle11G图文安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07

b452cee8ec5cd9e58ab98eba17281e59.png

本人主要是对drop/update数据后,在允许有时间内进行数据恢复,操作性强,比较实用。不对理论进行讲诉,需要的朋友可以参考下2015-08-08

f4838ec7e2d4da28e0b57d4e852dadd4.png

这篇文章主要介绍了oracle管道函数的用法(一行拆为多行),非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-08-08

最新评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值