|
原帖由 biti_rainy 于 2008-10-5 20:27 发表 ![]()
lz,你开篇描述的重点是oracle如何根据rba去寻找到恢复的日志的起点。 但用这个来概括备份恢复的原理还是不太合适的
我以前给人上课讲原理也是一句话:
oracle通过 log的形式记录了所有数据文件(上面的块)的变化,所以只要在某个时段备份了oracle的全部数据文件,并且拥有备份开始时间点以来的所有log,那么就可以用备份的数据文件通过log中变化信息去重演这个变化的过程而达到恢复数据的目的,如果没有某个时间点的数据文件作为应用变化的起点那么log的变化就没有立足之处。 所以备份的目标就是满足这个条件。
其他所有,包括 rba、checkpoint time、checkpoint change、scn、checkpoint 等等概念,以及恢复时候的所有行为,都是围绕这个这个原理的具体表现。一系列的试验就是尝试去列举这些具体的表现给大家感性的认识,并不断地补充一些规则。
关于这个原理的命题,前段时间我们team还有兄弟提出,假如存在自创建数据库以来的所有log,那么在所有数据文件都不存在的前提下是否可以恢复数据库(尝试按照原来相同的方式创建数据库所有文件)。 当然我们的推理结果是不能。后来有兄弟去做试验了,结果是不能。
至少system文件是必须的吧。redo中的信息应该还不足以实现create database。 |
|