ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE后台进程总结

ORACLE后台进程总结

原创 Linux操作系统 作者:qgw521 时间:2008-11-08 18:04:21 0 删除 编辑

ORACLE后台进程ORACLE服务器隐含执行的进程。当启动例程时,除了分配SGA外,还要启动后台进程。所以说例程由SGA和后台进程这两部分组成。而关闭例程时,除了释放SGA所占用的内存外,还要释放后台进程还占用的CPU和内存资源。

 后台进程主要有DBWRDATABASE WRITER),LGWRLOG WRITER),SMONSYSTEM MONITOR),PMONPROCESS MONITOR),CKPTCHECKPOINT PROCESS),

ARCHARCHIVE PROCESS)。

下面是各个后台进程的主要作用和触发时刻。

SMONSMON主要是恢复例程。因为数据库在运行过程中可能出现例程失败(比如断电,内存故障,例程例外等),在这种情况下SGA的信息还没有写到磁盘(指写到重做日志和

数据文件),那么在重新打开数据库的时候,SMON就会执行下面的例程恢复过程:

(1)       利用REDO,因为所有COMMIT的东西都已经写到重做日志了,这样就可以重新利用重做日志的信息来恢复事务数据。

(2)       打开数据库,包括COMMIT和未COMMIT的数据。

(3)       利用UNDO,因所有未COMMIT的事务都会记录到UNDO段,这样打开数据库后就会自动利用UNDO段来取消未COMMIT事务。

PMON:PMON主要是监视服务器进程的运作,在服务器进程出现意外失败时清除该进程,执行以下操作:

(1)       回退未提交事务

(2)       释放该进程所占有的表锁和行锁。

(3)       释放用户所占用的其他资源。

LGWR:将重做日志缓冲区的信息写到重做日志。当执行DMLDDL操作时,服务器进程先把事务变化记录到重做日志缓冲区,再记录到数据缓冲区,然后在DBWR将脏数据缓冲区的信息写到数据文件之前,也是LGWR先执行将重做日志缓冲区的信息写到重做日志。也就是先日志后修改。

 

 LGWR工作时刻

(1)       提交事务时

(2)       每隔3

(3)       重做日志缓冲区的信息超过1M

(4)       重做日志区已有1/3填满。

(5)       DBWR将脏数据缓冲区的信息写到数据文件前。

DBWR将数据高速缓冲脏缓冲区的信息写到数据文件。执行DMLDDL操作时,服务器进程会将事务变化记录到数据缓冲区,并将这个缓冲区标识为脏缓冲区(当然记录到数据缓冲区前先把事务变化记录到重做日志缓冲区),然后DBWR在一定时刻把脏数据缓冲区的信息写到数据文件。

 

 DBWR开始工作时刻:

(1)       发出检查点(由CKPT发出)

(2)       服务器进程找不到空的数据缓冲区时

(3)       删除或截断表时

(4)       使表空间脱机时(offline(alter tablespace  ….. offline normal)

(5)       开始备份表空间时。(alter tablespace …. Begin backup)

 

CKPT :发出检查点,同时数据文件、重做日志和控制文件(使SCN一致).CKPT发出检查点时,服务器进程会将这一时刻的SCN的值写到控制文件和数据文件头部,同时触发DBWR将数据脏缓冲区的信息写到数据文件。

CKPT工作时刻:

(1)       手动发出检查点(ALTER SYSTEM CHECKPOINT

(2)       切换日志组时(ALTER DATABASE SWITCH LOGFILE)

(3)       关闭例程时(不包括SHUTDOWN ABORT

(4)       由参数fast_start_mttr_target强制发出。

 

ARCH将重做日志的事务变化复制到归档日志中,只有在ARCHIVELOG模式中该进程才会启动。

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

下一篇: Oracle锁的总结
请登录后发表评论 登录
全部评论

注册时间:2008-06-06

  • 博文量
    128
  • 访问量
    277208