DBWn :负责将数据的更改由database buffer cache写到data files
检查点
脏数据达到阀值
没有buffer空间
超时
RAC ping request
表空间offline
表空间只读
表被删除或被truncate
表空间开始备份
LGWR :负责将数据更改记录由redo log buffer写到redo log files。
当用户进程提交一事务时写入一个提交记录。
每三秒将日志缓冲区输出。
当日志缓冲区的1/3已满时将日志缓冲区输出。
当DBWR将修改缓冲区写入磁盘时则将日志缓冲区输出。
当有1MB的归档日志写入
SMON:
检查数据库的一致性,必要的情况下,在数据库打开时执行恢复。回收不再使用的临时段空间、合并连续的空闲空间等。
Instance recovery:
日志切换
回滚未提交数据
合并空闲空间每三秒
负责清理不再使用的临时段
PMON:
进程负责在反常中断的连接之后的清理工作
释放锁
释放其他资源
PMON将观察所有Oracle进程,只要合适或重启他们或中止进程
CKPT:
负责更新数据库的控制文件( control files )中的状态信息。在数据缓存永久写入数据库时。
当到DBWN达检查点
当检查点需要更新数据文件头信息
更新检查点信息到control file
COMMITs 步骤
当 COMMIT 执行时:
1 server在redo log
Buffer中放置一个SCN作为commit记号 。
2 LGWR 执行一个不间断的写操作包括所有的redo log buffer写到redo log files及commit记号。在这一点,Oracle server可以保证即使在实例失败时数据也不会丢失。
3 用户被通知COMMIT完成。.
4 server记录信息显示事务已经完成,锁可以被释放。
数据缓冲信息独立的由DBW0执行,可能在commit前也可能在Commit后。