ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 久违和难得的Oracle学习,了解部分后台进程(未完)

久违和难得的Oracle学习,了解部分后台进程(未完)

原创 Linux操作系统 作者:louloueva 时间:2009-02-08 20:44:27 0 删除 编辑

春节前弄RMAN的过程中,曾经穿插着看了一下Oracle中的进程
当时看的是整体上的分类等概念,今天来具体看看一部分后台进程

Oracle数据库在运行过程中,后台会运行着多个进程,叫做后台进程
可以通过V$BGPROCESS视图查看关于后台进程的一些信息
根据一篇Oracle官方文档,按顺序简单记录几个

DBWn(n取0~9,a~j),数据库写进程
负责将Oracle数据库缓冲区的脏缓冲写到数据文件内
(脏缓冲是已经被修改,但未写入数据文件的数据)
为了保证缓冲区能有空余缓冲供用户使用
DBWn会根据LRU(最近最少使用)算法找出相应的脏缓冲,并将其写入数据文件
初始参数DB_WRITER_PROCESSES,可以设定Oracle的DBWn进程个数(最大20)
对于单处理器的环境,多个DBWn并不会提供更高性能
如用户未指定此参数,Oracle会自动根据用户系统情况进行设定
DBWn在将脏缓冲写入的时候,一次可以写入多个数据块的数据
DBWn可以周期地,或在数据缓冲区不足时,执行脏缓冲写入操作

LGWR,日志写进程,负责将相关数据写入redo log
用户进程提交某个事务的时候,会写入一个提交记录
而redo log缓冲区的内容是主要写入对象,有几种触发条件
每三秒写入一次
redo log缓冲区被使用了三分之一以上的时候
当DBWn写入脏缓冲之前,还含有未写入redo log的redo record
LGWR写入redo log的时候,会自动往日志组其它镜像成员写入同样内容
如某个成员无法写入,LGWR也会继续写入其它成员
还会在trace文件和alert日志中记录一条错误信息
如整个日志组都无法使用(文件丢失、损坏,或日志未归档等原因)
LGWR将无法继续工作
用户提交事务时,会被分配一个SCN,用来在RAC和分布式数据库中执行同步恢复操作
LGWR可以一次写入多个提交记录

CKPT,检测点进程,以前了解检测点事件的时候提到过
其主要作用是在检测点时间发生时为Oracle更新数据文件头,记录检测点的详细信息

SMON,系统监视器进程,需要时可对数据库进行恢复
清理数据库无用临时段,合并字典管理表空间内连续的空闲区
SMON定期地检查数据库系统是否需要此进程执行相关操作
其它进程可在需要时调用SMON

PMON,进程监视器进程
在某个用户进程出现问题后,负责清理用户进程所占用的系统资源和数据库缓冲区
PMON会定期检查调度器和服务进程状态,如果有必要,会重启某些停止的进程
PMON还将在网络监听中注册调度器进程和数据库实例的相关信息
PMON也会定期检查系统或其它进程是否需要此进程执行相关操作

今天就先看到这儿吧
有日子没弄Oracle管理方面的知识……看的时候稍微生疏了些
没辙,自己的脑子也不过是大众程度而已
最近一段时间,也就周末有可能看看Oracle
平时也许会弄弄白天接触的东西(比如C# WinForm,JAVA什么的)
争取早日适应这种频繁变换的学习对象 ^_^

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/556359/viewspace-545591/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-01-02

  • 博文量
    134
  • 访问量
    118437