暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle主要进程和sql执行流程

在路上 2024-12-19
155

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脏数据写入到磁盘

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论