Oracle回滚段和重做日志的区别、联系

来源:互联网 发布:sublime格式化php代码 编辑:程序博客网 时间:2024/06/14 01:06

回滚段的作用:事务隔离并保证读一致性、事务rollback时恢复数据
事务隔离:事务A和B同时运行,A修改了一行数据但未提交,此时Oracle有可能已经将该数据更新到数据文件中了。但此时事务B不应该看到新数据,因此Oracle应该在执行事务A时将数据的旧值放入回滚段,供事务B读取。
事务rollback时恢复数据:由于时间效率、空间等原因,oracle可能在事务还未提交之前就将数据更新到数据文件中,当用户rollback时,应该回滚。

重做日志的作用:数据库崩溃时恢复未写入数据文件中的数据。

当用户修改数据时,Oracle首先将回滚信息和新数据写入重做日志,不管事务是否已经提交。当用户提交一个事务,Oracle也可能没有及时的将事务写入数据文件。当数据库崩溃后重启,Oracle根据重做日志,将所有可能已经提交的、或未提交的数据重新应用到数据文件中(包括回滚信息和新数据)。然后再根据回滚段回滚未提交的事务。

详见:
http://www.comprg.com.cn/detail.asp?hw_id=8030
http://baike.baidu.com/view/3084737.htm

原创粉丝点击