“前滚”和“回滚”的区别

如题所述

如下:

前滚: 未完全提交的事务,即该事务已经被执行commit命令了,只是现在该事务修改所对应的脏数据块中只有一部分被写到磁盘上的数据文件中,还有一部分已经被置为提交标记的脏块还在内存上。

如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用前滚(这个机制)来完成事务的完全提交,即将先前那部分已经被置为提交标记且还在内存上的脏块写入到磁盘上的数据文件中。

回滚: 未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。

简介

实例恢复,就是Oracle软件系统根据数据库实例崩溃前最后一次检查点的那一刻到数据库实例崩溃那一刻期间所做的所有操作(无论该操作是否有提交的,这些操作可以从重做日志上读取)。

对该数据库实例对应的数据库(特别是数据文件部分做恢复,当然其他配合数据文件的文件,如控制文件,日志文件,也会做相关的恢复修改)进行前滚,即将该期间的操作重做一遍。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-26
前滚: 未完全提交的事务,即该事务已经被执行commit命令了,只是现在该事务修改所对应的脏数据块中只有一部分被写到磁盘上的数据文件中,还有一部分已经被置为提交标记的脏块还在内存上,如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用前滚(这个机制)来完成事务的完全提交,即将先前那部分已经被置为提交标记且还在内存上的脏块写入到磁盘上的数据文件中。
回滚: 未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。
实例恢复,就是Oracle软件系统根据数据库实例崩溃前最后一次检查点的那一刻到数据库实例崩溃那一刻期间所做的所有操作(无论该操作是否有提交的,这些操作可以从重做日志上读取)对该数据库实例对应的数据库(特别是数据文件部分做恢复,当然其他配合数据文件的文件,如控制文件,日志文件,也会做相关的恢复修改)进行前滚,即将该期间的操作重做一遍。之后再将其中未提交的操作进行回滚。这里,可能就有人疑问了,为什么前滚时不只做提交的操作,未提交的操作就不要做就好了嘛?因为数据库实例崩溃前,未被执行commit命令的事务,其所修改的脏块中也有可能一部分脏块已经写入到数据文件中了,所以需要进行回滚操作。
总之,实例恢复时,先做前滚,后做回滚。本回答被网友采纳

“前滚”和“回滚”的区别
回滚: 未提交的事务,即该事务未被执行commit命令。但是此时,该事务修改的脏块中也有可能一部分脏块写入到数据文件中了。如果此时数据库实例崩溃了,则当数据库实例恢复时,就需要用回滚(这个机制)来将先前那部分已经写入到数据文件的脏块从数据文件上撤销掉。简介 实例恢复,就是Oracle软件系统根据数...

数据库中前滚、回滚什么意思
前滚和回滚是 SQL Server?中的两个事务操作。前滚-恢复。白话:还没有做,根据日志继续把它做完。回滚-撤销。白话:已经做了,根据日志取消刚才所做的。每个 Microsoft?SQL Server?2000 数据库都有一个事务日志记录数据库内的数据修改,事务日志可以用于前滚和回滚操作。

...并回滚任何未完成的事务。什么是前滚和回滚
前滚是未完全提交的事务,如果这时候数据库崩溃了或者断电了,重新开机启动数据库时,就需要用前滚来完成事务的完全提交,即将先前那部分已经提交了还在内存里的块写入到磁盘上的数据库表里。 叫做前滚。 回滚就是未提交的事务,如果这时候数据库崩溃了或者断电了,重新开机启动数据库时,就需要用回滚来...

数据库中前滚、回滚什么意思
所以第二条sql就出现无法执行,那么数据库的状态必须回到没有执行B的update语句之前。当一个事务执行的时候,数据库会依次执行中间的sql语句,当某一条sql发生错误以后,根据事务的原子性,通过2种方式使数据库回到事务没有执行的状态。撤销就是相当于不执行commit;回滚就是执行一遍相反的操作,比如再执行...

数据库中前滚、回滚是什么?有什么作用?
所以第二条sql就出现无法执行,那么数据库的状态必须回到没有执行B的update语句之前。当一个事务执行的时候,数据库会依次执行中间的sql语句,当某一条sql发生错误以后,根据事务的原子性,通过2种方式使数据库回到事务没有执行的状态。撤销就是相当于不执行commit;回滚就是执行一遍相反的操作,比如再执行...

oracle中数据是怎样前滚和回滚的
“前滚和回滚”是Oracle数据库实例发生意外崩溃,重新启动的时候,由SMON进行的自动恢复过程。下面通过模拟实例和讲解介绍这个过程。 失败前场景说明 日志中记录过程如下: 1、事务A进行之后,结束commit。之后系统进行了一次checkpointA;2、Checkpoint之后,进行事务B,结束commit;3、进行事务C,C事务量较大,其中进行了一定量...

面试必备之MySQL数据库(binlog,redolog,undolog)
undo log:事务回滚和MVCC的基石undo log负责保存事务的前一个状态,使得在事务发生错误时可以回滚到之前的状态,同时支持MVCC(多版本并发控制)功能,确保并发操作的正确性。在事务提交时,redo log保证持久性,undo log负责事务的可逆性。回滚与前滚的区别回滚针对未提交的事务,涉及已刷盘的脏页;前滚...

事务日志如何帮助 SQL Server 恢复数据库?
在处理事务时,SQL Server有两种操作:前滚和回滚。前滚时,事务按照日志中的顺序应用修改,恢复数据库到事务开始时的状态,通过复制修改后的映像或重新执行语句来实现。而对于回滚,当事务未完成时,会撤销所有修改,将数据库恢复到BEGIN TRANSACTION之前的状态,甚至可能执行与CREATE INDEX相反的操作。检查...

数据库恢复的数据库恢复的三种方式
回滚语句的顺序与最初执行时的顺序相反。 这种恢复技术是版本恢复的一个扩展,使用完整的数据库备份和日志相结合,可以使一个数据库或者被选择的表空间恢复到某个特定时间点。如果从备份时刻起到发生故障时的所有日志文件都可以获得的话,则可以恢复到日志上涵盖到的任意时间点。前滚恢复需要在配置中被...

财务回滚交易是什么意思
简单来说就是银行需要用特定的收款账户收款,并且要记录信息,所以又把钱拿出来走了一遍流程,是正常的现象。财务回滚是对没有提交的事务而又写入数据文件而言的,把没有提交的数据进行回滚。如果回滚段不存在没有提交的数据则会根据内容在前滚阶段生成回滚段。因此,交易回滚就是中心服务器规定某种币的...

相似回答