增量更新备份:基本实例
为了创建在增量更新备份策略中使用的增量备份,使用BACKUP …FOR RECOVER OF COPY WITH TAG。
下面的脚本,定期运行,是实现基于增量更新备份所需要的全部代码。
RUN { RECOVER COPY OF DATABASE WITH TAG 'incr_update'; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE; } |
为了理解这个脚本和策略,必须理解当没有数据文件拷贝或增量备份存在的时候,这2个命令的效果:
n 脚本中的BACKUP命令不总是创建level 1增量备份
n 脚本中的RECOVER命令会使RMAN应用任何可用的、具有指定标签的level 1增量备份到具有相同标签的数据文件的集合上。
下表显示了从星期一开始,每天运行一次,这个脚本的效果
命令 | 星期一 | 星期二 | 星期三 | 星期四… |
RECOVER | 因为没有增量备份或数据文件拷贝存在,这个命令产生一个消息(不是一个错误),即这个命令没有效果。 | 一个数据库拷贝存在,没有level 1增量备份存在用于恢复,因此RECOVER命令没有效果。 | 在星期二做的level 1增量备份应用到数据库拷贝上,使拷贝前进到这个level 1增量备份的检查点SCN。 | 昨天做的level 1增量备份应用到数据库拷贝上, 使拷贝前进到这个level 1增量备份的检查点SCN。 |
BACKUP | 没有level 0镜像拷贝存在,创建一个数据库镜像拷贝,标签为incr_update。为了开始增量更新的循环,这个拷贝是必要的。 注意:如果脚本中设置DEVICE TYPE sbt,则第一次运行会在磁盘上创建备份,而不是在磁带上,后续的执行会在磁带上进行level 1备份。 | 产生一个level 1增量备份,标签为incr_update.
这个备份包含在周一和周二之间改变的数据块 | 产生一个level 1增量备份,标签为incr_update.
这个备份包含在周二和周三之间改变的数据块 | 产生一个level 1增量备份,标签为incr_update.
这个备份包含当前和最近的具有incr_update标签的备份之间的改变。 |
注意下面的细节:
n 每当数据文件被添加到数据库,则在脚本下一次运行的时候,这个新文件的镜像拷贝会被创建。
脚本的下次运行会为添加的文件第一次产生level 1增量备份。
在所有后序的运行,新添加的文件就和其它文件一样处理了。
n 你必须使用标签来识别在这个策略中的数据文件的拷贝和增量备份,这样就不会与其它的备份策略相混淆。
如果你使用多个增量备份策略,则RMAN不能明确地创建level 1增量备份,除非给level 0备份指定了标签。
应用到这些镜像的level 1增量备份是基于数据文件镜像拷贝的标签和可用的level 1增量备份来选择的。
在选择level增量备份的时候标签非常重要。
n 在脚本第3次运行之后,下面的文件对于基于时间点的恢复是可用的。
u 数据库的镜像拷贝,从脚本上一次运行的检查点SCN开始。
u 一个增量备份,包含上一次运行的检查点SCN之后的改变。
u 归档重做日志,包含在镜像拷贝的检查点SCN和当前时间之间的所有改变。
如果必须还原和恢复数据库在接下来的24小时期间,则可以从增量更新数据文件拷贝来还原数据文件。
然后从最近的level 1增量备份和重做日志应用改变来达到希望的时间点。
最多应用 24 小时的 redo 数据,这就限制了完成基于时间点的恢复需要的时间。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1087778/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1087778/