用户提交commit后,数据库干的工作有:

1,oracle为用户的transaction生成一个SCN号。

2,LGWR把redo buffer中的数据写入到redo log file,同时把SCN号记录到redo log file中。这一步完成后,说明用户提 交的数据已经安全的写到磁盘

3,释放用户session占用的locks,这些locks可以在V$LOCK中查到。释放用户的lock后,那么其他在等待lock的session 就会被唤醒,继续它们的工作

4,如果在commit后,用户transaction修改的一些blocks依然在buffer cache中,这些blocks会被快速的visited,并被 cleaned out。block cleanout是指清除存储在block header中的和lock想关的信息。这一步不会产生redo信息。

从上面看,用户commit,只是把redo log buffer中的数据写入到redo log中,实际上并没有把真正的用户提交的数据(data buffer cache中的脏数据)写入到磁盘。DBWn分散的把脏数据组成“一团”,交给OS,让OS去写,而自己去收集下一个“团”。

最新文章

  1. Conquer and Divide经典例子之汉诺塔问题
  2. Ubuntu下freeradius的EAP-MD5,PEAPv0/EAP-MSCHAPv2,EAP-TTLS/MD5,EAP-TTLS/MSCHAPv2方式认证(基于mysql)
  3. DirectShow .Net 实现视频
  4. Python生成器与yield
  5. 进程显示,删除,调度 ps, top kill
  6. 基于linux c的mysql操作——幼儿园数据管理系统
  7. pygame各个模块概述
  8. iOS开发——汉字转拼音
  9. link-cut-tree 简单介绍
  10. Java基础系列-Collector和Collectors
  11. 潭州课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记
  12. Celery框架
  13. [kfaka] Apache Kafka:下一代分布式消息系统
  14. [sql] 同库表(结构)的备份和sql聚合&navicat使用
  15. WinForm二三事(三)Control.Invoke&Control.BeginInvoke
  16. 数据库SQL调优之"执行计划"【未完待续】
  17. 0407-服务注册与发现-Eureka深入理解-元数据、高可用HA
  18. 判断修改的中的值,用前面的,否则容易获得空值;this.dataGridView1.Rows[i].Cells[0].EditedFormattedValue; VS bool b = (bool)this.dataGridView1.Rows[i].Cells[0].Value;
  19. JQuery判断页面是否按下了Enter键
  20. BootLoader的一些知识

热门文章

  1. 服务器安装VMware ESXI5.5
  2. Paros抓包工具
  3. hdu5348 MZL's endless loop(欧拉回路)
  4. Hadoop集群日常运维
  5. 微信JS-SDK 接口调用与 php 遇到的坑
  6. CC2530定时器1的模模式中断
  7. 感知机(perceptron)
  8. yii基础知识-
  9. (\S)? 匹配0个或者一个前导字符
  10. 【转】Android 4.0.3 CTS 测试