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将联机日志文件归档到归档日志文件.