我已完成以下步骤:
- 增量级别为 0的备份数据库
删除INCREMENTAL LEVEL 0备份而不告诉控制文件。于是手动删了。并且没有进行交叉检查。
具有增量级别 1的备份数据库(不进行交叉检查)。这可能是多么令人惊讶,日志向我显示增量级别 1已成功完成。
请注意,我没有增量级别 0备份,但 controlfile 不知道。我刚刚增量级别 1。
我试图用这个备份恢复数据库,但当然不能。它告诉我找不到数据文件 1-5 的备份...
如果 controlfile 知道 EXPIRED backups ,那么INCREMENTAL LEVEL 1备份首先会执行INCREMENTAL LEVEL 0,然后是INCREMENTAL LEVEL 1。
如何避免这种情况。我必须在备份脚本中使用 chrosscheck 吗?或者在 RMAN 中设置恢复窗口?
我有 Oracle 11g 数据库。备份由 Netbackup 服务器进行。因此,Netbackup 通过保留来删除备份本身。RMAN 保留策略配置为 REDUNDANCY 2。
请给我建议。
是的,如果您想防止在没有相应级别 0 可用的情况下创建级别 1,那么您需要在脚本中进行交叉检查,以便 RMAN 知道级别 0 不可用。
在 10g 之前(或兼容性 < 10.0),当在没有级别 0 的情况下完成级别 1 时,Oracle 会执行级别 0。由于您使用的是 11g,因此我希望您的兼容性 >=10.0,因此 RMAN “复制自文件创建以来已更改的所有块”。这种行为似乎在版本之间发生了变化,并且对于当前行为是什么存在一些混淆,但您的发现与文档一致。