重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 76|回复: 0
打印 上一主题 下一主题

[Oracle] oracle主要进程和sql执行流程

[复制链接]
跳转到指定楼层
楼主
发表于 5 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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脏数据写入到磁盘

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-12-27 07:37 , Processed in 0.080827 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表