天天看点

Oracle的进程结构

Oracle的进程结构

    了解一下Oracle数据库的进程结构,对理解Oracle的性能、数据库的设计、备份与恢复的原理有很大帮助.

    1.系统监视器(System Monitor, SMON)

    主要任务是通过查找和验证控制文件来安装数据库,通过查找和验证所有数据文件和联机日志文件打开数据库,打开数据库后负责执行各种内部管理任务,如比较数据文件中的可用

空间.

    2.进程监视器(Process Monitor, PMON)

    PMON在会话创建时启动,再会话结束时销毁. PMON监视所有服务器进程,会话异常退出时,回滚事务,释放资源.

    3.数据库写入器(Database Writer, DBWn)

    会话通常不将数据或更改写入磁盘,会话将数据或更改写入高速缓存区.

    DBWn在以下四种情况写入磁盘文件.

    ·没有可用的缓冲区

    ·脏缓冲区数据过多

    ·三秒超时

    ·遇到检查点

    在提交事务时,DBWn不做任何动作.

    4.日志写入器(Log Writer, LGWR)

    当会话对数据高速缓冲区中的块执行任何更改时,在其将更改应用到块之前,会将更改矢量写到日志缓冲区. 为保证不丢失任何工作,必须在最大程度减少延迟的情况下将这些更改矢量写入磁盘. LGWR将日志缓冲区的内容实时写入联机重做日志文件.当会话发出COMMIT时,LGWR会实时写入,在LGWR将缓冲区写入磁盘时,会话将挂起,只有此时才将事务记录为已经提

交(因此是不可逆的).

    LGWR是Oracle体系结构中最大的瓶颈之一.DML的速度不可能超过LGWR将更改矢量写入磁盘的速度.

    在以下三种情况下LGWR将转储日志缓冲区:

    ·会话发出COMMIT.

    ·日志缓冲区占有率达1/3.

    ·DBWn要将脏缓冲区数据写入文件时.

    5.检查点进程(Checkpoint Process, CKPT)

    CKPT发起检查点,触发DBWn将脏缓冲区数据写入磁盘.

    8i前,每过一定的时间间隔,就需要设置检查点.8i及之后,DBWn用增量检查点代替完全检查点.

    何时出现检查点:只会应请求这么做,或在有序关闭数据库时出现.

    6.归档进程ARCn

    在归档日志模式下,LGWR将日志缓冲区写到联机重做日志文件中,联机重做日志文件一旦变满,ARCn会制作联机重做日志文件的副本(归档重做日志文件),在ARCn将联机日志文件成功归档到归档日志文件前,不允许覆盖相应的连机日志文件.

    进程对数据库事务的处理过程

    ·会话将数据或更改写入数据高速缓冲区,并在应用到更改的块之前,将更改矢量写入日志缓冲区.

    ·LGWR将日志缓冲区的数据实时写入磁盘联机日志文件(在日志缓冲区占满1/3,或者会话发出提交事务,或者DBWn要写脏缓冲区时).

    ·DBWn按一定的时机写入磁盘数据文件(缓冲区满,脏缓冲数据过多,三秒超时,检查点请求).

    ·联机日志文件写满时,ARCn将联机日志文件归档到归档日志文件.