之前以为备份保留策略恢复窗口指定为多少天,则指定多少天后备份则obsolete。所以,造成自己用report obsolete命令查看,觉得应该obsolete的备份,却没有出现。于是有下文。
一什么是恢复窗口
先看看官方文档上的一段解释
A recovery window is a period of time that begins with the current time and extends backward in time to the point of recoverability. The point of recoverability is the earliest time for a hypothetical point-in-time recovery, that is, the earliest point to which you can recover following a media failure.
上面这段我们可以看出
恢复窗口,是一个时间段,即从当前时间向后延伸到过去的某一个可恢复时间点。
二备份何时会obsolete
为了保证这个“恢复窗口”的可恢复性,即窗口内的任意一点能够被恢复,oracle会视所有相关的全备份,增量备份,以及归档日志为非obsolete。除此之外不相关的备份则为obsolete。
如下图所示:
从图中可以看出恢复窗口为7天,那么从当前时间1月23号向后延伸到1月16号这个时间周期内,为保证该时间段内任意一点的可恢复性,则会认为1月14号的全备份,以及从14号开始的归档日志为非obsolete。1月14号之前的所有全备份和归档日志都会为obsolete.
三举例说明
如下图所示
恢复窗口的配置如下(recovery window=7)
数据库的当前时间如下(current time 为4月17号)
即恢复窗口应为4月17到4月10号,为了保证这段时间内的任意一点的可恢复性,相关备份,归档,增量备份都为非obsolete。
数据库当前的备份如下:
图中可以看出数据库的做了两次全备份,一次是3月16号,另一次是4月11号,为了保证4月17到4月10号这段时间内的任意一点能够恢复,所以3月16号的这次全备及其后面的归档也是非obsolete的。因为对于4月10号任意时间点的恢复,还需要3月16号这个全备做为基点。
发起report obsolete命令后的结果
总结:结合上一篇博文和这篇博文,判断那些备份、归档,会obsolete已经了然于胸了吧。