commit后数据库干的工作

用户提交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去写,而自己去收集下一个“团”。

commit后数据库干的工作,布布扣,bubuko.com

时间: 2024-11-03 05:09:22

commit后数据库干的工作的相关文章

linux下修改MySQL root密码后数据库消失

Linux系统下如果没有通过password()函数修改mysql的root密码就会导致mysql数据库消失.有些人可能不知道而直接修改了mysql的root密码,于是产生了mysql数据库消失的问题,这个时候该怎么处理呢? 可以用下面的办法解决: 1.修改mysql数据库目录配置文件:my.cnf(或my.ini) [mysqld]下添加: skip-grant-tables 2.重启mysql服务,然后用mysql 登录. 3.进入后,可以看到,mysql数据库已呈现,然后修改密码: upd

OpenERP 源码变更后数据库升级

转自:http://vivianyw.blog.163.com/blog/static/13454742220142114422130/?latestBlog OpenERP代码升级后需要对数据进行升级,否则只是替换代买,会遇到很多意想不到的问题.这里记录一下升级操作的过程(这里是基于手动源码安装的换进进行说明: 1. 需要停止OpenERP的服务,视具体的安装时的启动脚本可能是: sudo /etc/init.d/openerp stop 或者 sudo /etc/init.d/openerp

git commit 后 尚未push到远程,撤销commit

执行commit后,还没执行push时,想要撤销这次的commit,该怎么办? 解决方案: 使用命令: git reset --soft HEAD^ 这样就成功撤销了commit,如果想要连着add也撤销的话,--soft改为--hard(删除工作空间的改动代码). 命令详解: HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1 如果进行两次的commit,想要都撤回,可以使用HEAD~2 --soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add

【连载】关系型数据库是如何工作的?(9) - 查询管理器

查询管理器 查询管理是一个数据库强大与否的一个判断指标.通过查询管理,可以把一个糟糕的查询语句转换为一段快速执行的代码,代码执行后返回结果给客户端管理器.整个过程分为多步: 查询首先被解析并检查其有效性: 重写查询并删除不必要的操作,另外做一些预优化: 为了提升性能进行必要的优化,最终转换为一个执行计划: 编译执行计划: 最后运行执行计划. 在读了这一章节之后,如果对查询优化想更深入的理解,我推荐阅读以下资料: 1979年发表的一篇最早的关于基于成本优化的论文:Access Path Selec

C#中如何解决sqlite数据表/记录删除后数据库内存不变的问题

在C#中使用sqlite数据库时发现,删除了数据表或大量数据后,数据库的并不会变小. 这是因为数据库中删除大量数据后,会留下原来的数据空间(空闲数据页),数据库默认不会自动释放这些空间.可以通过"VACUUM"命令释放空间. 网上查到两种方法(手动/自动): 1.手动释放空间 先写一个执行sql语句的函数: 1 private void ExecuteSql(string sDbPath, string sqlStr) 2 { 3 using (SQLiteConnection con

xenapp,xendesktop安装完成后数据库配置-已经被绝大多数人忽略的细节

sql server 2008r2 或者sql 2012 r2安装后做了mirror,xenapp或者xendesktop安装完成,数据库连接工具安装完成后,本地配置文件还需要设置故障转移,详情配置如下: 针对于ima的mf20.dsn文件配置数据库故障转移.配置如下:[ODBC] DRIVER={SQL Server Native Client 10.0} DATABASE=XENAPP6.5 APP=Citrix IMA UID=ctxadmin SERVER=szx01-db Failov

zz装完UBUNTU后要干的事

原贴:https://coolshell.cn/articles/1644.html Ubuntu 9.10刚刚release,就有人在网上发表了贴子告诉大家在装完这个操作系统后,还需要去安装的一些开源免费软件,相当丰富.不过,这个贴子的链接被GFW干掉了,所以,你需要使用Tor的支持,或是使用Google Reader才能查看源文(RSS链接).而这个贴子非常长,所以我无法作全文翻译,不过这个贴子的内容具有很强的指导意义,所以我在这里为大家总结一下该文所提到的那些诸多的东西.(关于那些如何FQ

move核心对象表 dependency$ 后数据库无启动问题解决

move table: SQL> startup ORACLE instance started. Total System Global Area  281018368 bytes Fixed Size                  2083336 bytes Variable Size              88081912 bytes Database Buffers          184549376 bytes Redo Buffers                6303

linux-安装后的准本工作

1,关闭防火墙 查看防火墙状态: [[email protected]_study ~]# service iptables status iptables:未运行防火墙. 关闭与开启防火墙: 需要重启后才能生效,永久生效: 开启: chkconfig iptables on 关闭: chkconfig iptables off 无需重启,立即生效,但是重启后失效: 开启: service iptables start 关闭: service iptables stop 2,关闭selinux