下面的概念对于理解RMAN增量备份算法非常必要的:
n 检查点SCN,每个数据文件都有一个数据文件检查点SCN,可以通过V$DATAFILE.CHECKPOINT_CHANGE#来查看。
所有SCN号低于这个SCN的改变确保已经在数据文件中了。
当一个level 0增量备份被还原后,数据文件中包含这个备份被创建时候的检查点SCN。
当一个level 1增量备份被应用到数据文件之后,则文件的检查点SCN前进到这个level 1增量备份被创建时的检查点SCN。
n 增量开始SCN,这个SCN只会应用到level 1增量备份。
SCN >= 增量开始SCN的块都被包含在这个备份中。
SCN < 增量开始SCN的块不会包含在这个备份中。
增量开始SCN通常是这个level 1增量备份的parent的检查点SCN。
n 块SCN,在数据文件中的每个数据块都会记录一个SCN,是块被改变的最近的SCN。
当RMAN对数据文件进行level 1增量备份,RMAN读取文件,检查每个块的SCN,然后备份SCN >= 增量开始SCN的块。
如果这个备份是差异备份,则增量开始SCN是最近的level 1备份的检查点SCN;
如果备份是累积增量备份,则增量开始SCN是最近的level 0备份的检查点SCN。
当块改变跟踪被开启时,RMAN使用位图来避免读取在增量开始SCN和检查点SCN范围之间没有改变的块。
RMAN也会检查被读取的每个块,使用块中的SCN来判断是否应该被包含在备份中。
增量备份算法的结果就是RMAN在恢复的过程中会应用包含改变数据的所有的块。
即使这个改变是对于使用NOLOGGING选项创建的对象。
因此,如果你还原一个在NOLOGGING改变之前做的备份,则增量备份是恢复这些改变的唯一方法。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1084208/ ,如需转载,请注明出处,否则将追究法律责任。