有没有办法告诉VALIDATE RECOVERY FILES
命令使用具有更多可用磁盘空间的不同位置?
当我在 RMAN 中运行该命令时,它失败并出现以下错误堆栈:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of validate command on ORA_DISK_1 channel at 06/05/2012 12:02:42
ORA-19502: write error on file "/opt/app/oracle/product/11.2.0/dbhome_1/dbs/...
ORA-27072: File I/O error
Additional information: 4
Additional information: 1071488
Additional information: 286720
ORA-19502: write error on file "/opt/app/oracle/product/11.2.0/dbhome_1/dbs/...
这似乎是由于验证正在使用数据库主页作为其工作区,而那里没有足够的磁盘空间。在命令失败并返回空间之前,我实际上可以看到那里的 8GB 可用空间降为零。
在为设备分配通道时,该位置不受格式中设置位置的影响。
DB_RECOVERY_FILE_DEST 设置为“+FRA”,但目前大多数备份位于 /u01/back 而不是 ASM。'+FRA' 确实有一些控制文件备份。
更新:
我还没有找到一种方法来做到这一点,但我也没有找到任何明确的说法,说这是不可能的。有一个Oracle 社区主题对此进行了讨论,但没有解决方案。有趣的是RESTORE ARCHIVELOG ALL VALIDATE
并RESTORE VALIDATE DATABASE CHECK LOGICAL
没有表现出这种行为,这可能就是为什么更多人没有遇到过它的原因。
更新 2:
我在 Oracle 支持下打开了一个 SR,看看他们是否可以阐明这个问题。
更新 3:
Oracle 支持能够在内部重现此问题,他们将其视为错误。
Oracle 支持将错误 14226856 关闭为“不是错误”,并表示将在 12c 中修复。
检查 db_recovery_file_dest 参数,我怀疑它没有配置,Oracle 默认使用 oracle home。