1.SMON
SMON 用于执行例程恢复,合并空间碎片并释放临时段。假定数据库执行过程中出现了例程失败(断点、内存故障、后台进程例外),此时SGA信息尚未完全写入磁盘(数据文件、重做日志)。当重新打开数据库时,后台进程SMON会按照以下步骤自动执行历程恢复:
REDO:重新应用那些被记载到重做日志,但尚未记载到数据文件中的数据。因为有被提交的失误已经记载到重做日志,所以可以保证恢复事务数据。
打开数据库:在打开数据库时,既包含了被提交的数据,也包含了为被提交的数据(枷锁)。
UNDO:取消未提交数据。打开数据库后,oracle会自动使用UNDO段回退未提交的数据。
2.PMON
PMON用于监视服务器进程的执行,并且在服务器进程失败时清除服务器进程。访问oracle SERVER时,oracle会在服务器端为用户进程分配服务器进程。假定用户进程因地址例外意外终止进行,PMON可以轮询检测该服务器进程,并执行以下操作:
回退用户的当前事务。
释放服务器进程所占的所有表锁和行锁。
释放用户所占的其他资源
3.DBWR
用于将数据高速缓存的脏缓冲区的数据写入到数据文件中。
默认情况下只有一个DBW0进程,通过设置初始化参数 db_writer_process可以定义最多10个DBWR进程。出现一下情况时,DBWR进程会开始工作:
系统发出检查点。
服务器进程不能找到空闲缓冲区。
删除或截断表。
是表空间正常脱机(alter table.... offline normal)。
开始表空间备份。
4.LGWR
用于将重做日志缓冲区所记载的全部内容写入到重做日志文件中。当出现如下情况时,LGWR进程会开始工作:
提交事务。
每隔三秒钟。
当重做信息超过1M时
重做日志缓冲区已经有三分之一填满。
在DBWR进程将缓冲区写入到数据文件之前。
5.CKPT
CKPT 用于发出检查点。检查点会同步数据库的数据文件、控制文件、和重做日志。当发出检查点时,后台进程CKPT将检查点时刻的SCN,写入到控制文件和数据文件头部,同时促使后台进程DBWR将所有脏缓冲区写入到数据文件中。
当发出检查点时,不仅后台进程CKPT和DBWR要开始工作,LGWR也会将重做日志缓冲区写入到重做日志,从而确保数据文件、控制文件、和重做日志的一致性。出现一下情况,CKPT开始工作:
日志切换。
关闭例程。
手工检查点操作。
由初始化参数fast_start_mttr_target强制发出检查点。
6.ARCH
用于将重做日志的事务变化复制到归档日志中,该后台进程只有在 ARCHIVELOG模式下才有意义。默认情况下只有一个ARC0进程,通过设置初始化参数log_archive_max_process最多可以定义10个归档进程。在 ARCHIVELOG模式下,进行日志切换时会自动生成归档日志。