日常记录

数据库的前滚和回滚操作

2020-01-13  本文已影响0人  FinalException

categories:


前滚是将未完成的操作继续完成,回滚是将执行完的操作回复过来

前滚

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

回滚

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

redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。

上一篇下一篇

猜你喜欢

热点阅读