Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103691885
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-05 15:52:36

    来源:赛迪网    作者:林梦

Oracle数据库中的恢复机制采用了转储和登记日志文件两个技术。

Oracle向数据库管理员(DBA)提供了多种转储后备副本的方法,如文件拷贝、利用Oracle的Export实用程序,用SQL命令spool以及自己编程实现等。相应地,Oracle也提供了多种重装后备副本的方法,如文件拷贝、利用Oracle的Import实用程序、利用SQL*Loader以及自己编程实现等。

在Oracle的早期版本中,日志文件以数据块为单位,也就是说,Oracle的恢复操作不是基于操作,而是基于数据块的。Oracle将更新前的旧值与更新后的新值分别放在两个不同的日志文件中。记录数据库更新前的旧值的日志文件称为数据库前像文件(Befor Image,简称BI文件),记录数据库更新后的新值的日志文件称为数据库的后像文件(After Image,简称AI文件)。由于BI文件关系到能否将数据库恢复到一致性状态,因此BI文件是必须的。而AI文件的作用是减少必须重新运行的事务程序,尽可能多的恢复数据库,所以在Oracle中AI文件是任选的。日志文件是十分占据空间的,为节省存储空间和操作时间,DBA可以不配置AI文件。没有AI文件,恢复机制进行故障恢复时只能执行UNDO处理,不能执行REDO处理。

Oracle为了能够在出现故障时更有效地恢复数据,也为了解决读“脏”数据问题,提供了REDO日志文件和回滚段(Rollback Segment).REDO日志文件中记录了被更新数据的前像和后像,设在数据库缓冲区中的回滚段记录更新数据的前像。在利用日志文件进行故障恢复时,为减少扫描日志文件的遍数,Oracle首先扫描REDO日志文件,重做所有操作,包括未正常提交的事务的操作,然后再根据回滚段中的数据,撤销未正常提交的事务的操作.

阅读(292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~