在进行rman恢复,碰到如下报错

可以看到在implicit crosscheck copy时报错,隐式交叉检查仅在使用快速恢复区域时可见,当使用恢复的控制文件来恢复数据库时,需要确保控制文件元数据是正确的。因此,RMAN会自动交叉检查所有备份,并对flash恢复区域进行catalog。
根据mos文档Doc ID 2428682.1描述,这可能是一个bug,如下:

并提供了如下的解决办法
1)可以通过显式分配磁盘维护通道来避免
For example:
run {
allocate channel ch1 type ‘sbt_tape’;
backup database
include current controlfile;
}
allocate channel for maintenance device type disk; <<<=== explicitly allocate the maintenance channel
crosscheck archivelog all;
delete force noprompt archivelog all;
如果RMAN需要对两种设备类型上的备份文件进行操作,则在RUN{}块之外分配维护命令,并显式分配所需的通道(DISK和/或TAPE)。例如:
allocate channel for maintenance type ‘SBT_TAPE’;
allocate channel for maintenance type disk;
delete obsolete device type sbt;
delete obsolete device type disk;
delete archivelog all backed up 1 times to <disk/sbt>
2)补丁修复
以上方法都比较麻烦,可以通过设置recovery area,不让implicit crosscheck检查到闪回恢复区
SQL> alter system set db_recovery_file_dest=’’ scope=both;
执行完再尝试恢复即可,记住,一旦恢复完成,请稍后重新启用FRA。




