1.checkpoint 功能:减少崩溃恢复crash recovery时间。检查点可以确保在某个时间点之前的所有事务都写入磁盘,保证数据一致性 后台进程ckpt触发,ckpt通知dbwr进程将脏数据库dirty buffer 写出到数据文件上.更新数据文件头及控制文件上的检查点 触发条件:数据库一致性关闭、alter system checkpoint;、在线日志切换、alter database begin backup 2.dbwr(随机写) 功能:将缓冲区缓存buffer cache 中的脏数据块dirty blocks写入到数据文件。为了提高性能,oracle不会每次修改数据立即写入磁盘,而是先将修改的数据块保存在缓冲区缓存中,并标记为脏块.dbwr负责适当时候将脏块写入到磁盘 触发条件:固定时间间隔3s、检查点事件、缓存空间不足 3.lgwr (连续写) 功能:将重做日志缓冲区redo log buffer 中的重做日志条目写入到在线重做日志文件online redo log中。 触发条件:固定时间间隔3s、事务提交commit、缓存空间不足、在线日志切换也可以 4.arch 功能:将已经填满的在线重做日志文件复制到归档位置,用于数据库的备份和恢复操作。 触发条件:在线重做日志文件满、在线日志切换
流程: 1)buffer cache找到需要的数据块,如果没有,从数据文件读入到buffer cache中。 2)事务修改buffer cache的数据块,标记为脏数据,同时写入log buffer中(先log buffer后buffer cache) 3)事务提交commit,lgwr将条目从log buffer写入联机重做日志文件 4)执行checkpoint,同步数据库,更新数据文件头的信息,触发dbwr进程将buffer cache脏数据写入到磁盘
|