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