|
【赛迪网-it技术报道】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日志文件,重做所有操作,包括未正常提交的事务的操作,然后再根据回滚段中的数据,撤销未正常提交的事务的操作。 |