update语句的执行步骤和其他DML语句的执行步骤是一样的包含insert 、delete语句等,执行步骤如下:

一、如果数据和回滚数据不在数据库高速缓存区中,则oracle服务器进程将把他们从数据文件中读取到数据库高速缓存区中。

二、oracle服务器进程在要修改的数据行上加锁(行一级的锁)

三、oracle服务器进程将数据的变化信息和回滚段所需要的信息都记录在重做日志缓冲区中

四、oracle服务器进程将回滚所需的原始值和对数据所做的修改都写入数据库高速缓冲区。之后在数据库高速缓存区中所有的这些数据块都将被标记为脏缓冲区,因为此时内外存的数据是不一致的。

五、然后由DBWR后台进程负责将数据库高速缓存区中的脏缓存区中的数据写到数据文件中,实现内外存的数据一致。至于DBWR后台进程的执行时间点是有oracle系统的设置所决定的,包含在一下情况时触发DBWR进程执行数据的写入。

(1)缓冲区的数量超过了所设定的限额

(2)所设定的时间间隔已到

(3)当有进程需要高速缓存区,但是此时又没有空闲的高速缓存区时。

(4)当校验点发生时

(5)当某个表被删除drop或者被截断truncate时

(6)当某个表空间被设置为只读状态时

(7)当使用类似alter tablespace users begin backup的命令对表空间进行联机备份时

(8)当某个临时表空间被设置为只脱机状态或正常状态时

commit语句的执行顺序:

一、服务器进程将提交的记录连同产生的SCN码一起写到重做日志缓存区中

二、LGWR进程将把重做日志缓存区中一直到所提交的记录的所有记录连续的写到重做日志文件中。在此之后,oracle服务器就可以保证即使在系统崩溃的情况下所有提交的数据也可以得到恢复

三、oracle通知用户进程提交操作已经完成

四、服务器进程将修改数据库高速缓存区中的相关数据的状态并释放资源和打开锁(实际上就是修改数据库高速缓存区中的脏缓存区)

此时这些数据可能并没有写入数据文件中,这些数据缓存区被标记为脏缓存区。高速缓存区中 的数据由DBWR进程写入数据文件中。

LGWR进程在下列情况下将重做日志缓存区中的数据写入重做日志文件:

(1)当某个事务被提交时

(2)当重做日志缓存区中的变化的记录超过1M时

(3)当缓存区的容量超过1/3时

(4)在DBWR进程将数据库高速缓存去中修改过的数据块写入数据文件之前

(5)每3秒钟

注:从LGWR进程的触发事件看,LGWR进程的执行一定在DBWR进程的执行之前,这样才能保证数据恢复的完整性。

最新文章

  1. CSS3实现圆形进度条
  2. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q56-Q58)
  3. 【POJ】2234 Matches Game(博弈论)
  4. [slim] Slim - Faster, lightweight, a enginer for Ruby
  5. numpy 总结
  6. C# type - IsPrimitive
  7. eslint error
  8. Java中final、finally和finalize的区别(转)
  9. linux中运行python
  10. Verilog HDL常用综合语法
  11. Elasticsearch 5.0 —— Head插件部署指南(Head目前支持5.0了!请不要看本篇文章了)
  12. Canvas入门到高级详解(下)
  13. 类似于PLC上升沿的TRIO代码示例
  14. windows 下编程实现打印日志
  15. 【转】安全加密(五):如何使用AES防止固件泄露
  16. idea 快捷键总结
  17. JavaScript语法详解:if语句&for循环&函数
  18. 20155330 《网络对抗》 Exp6 信息搜集与漏洞扫描
  19. 9 云计算系列之Cinder的安装与NFS作为cinder后端存储
  20. java MongoDB查询(一)简单查询

热门文章

  1. myeclipse内存不足有关问题
  2. Aandroid Error之 新导入工程报Unable to resolve target 'android-18'和R cannot be resolved
  3. Android 真机调试显示offline
  4. NPOI导出多张图片到Excel
  5. Light Bulb--zoj3203(三分法)
  6. 为TL-WR720N编译带mentohust和njit-client的openwrt固件
  7. uva156 By sixleaves
  8. myeclipse 2013 git
  9. magento后台登陆404、Front controller reached 100 router match iterations的解决方案
  10. 集装箱学习(两):动手模拟AOP