Avamar:Oracle 备份失败,并显示“超出 0 个文件损坏块的限制”
Summary: 为由于损坏的数据块导致的 Oracle 备份失败提供解决方案的知识库 (KB) 文章。
Symptoms
备份在活动窗口中显示为失败,但可在 Avamar Administrator 控制台或 Avamar 用户界面 (AUI) 中还原。如果在数据集中启用了“备份归档日志”选项,则尤其如此。
Oracle 备份可能会失败,并显示类似于以下内容的错误消息:
avoracle Error <7934>: Snapup of EBSP aborted due to rman terminated abnormally - check the logs
...
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 11/19/2015 20:52:52
ORA-19566: exceeded limit of 0 corrupt blocks for file E:\ORACLE\EMC\DB\AVAMAR\DATABASE.DBF
Recovery Manager complete.
Cause
有问题的数据库文件具有损坏的数据块。
可以通过运行以下命令来确认:
SQL> select * from v$database_block_corruption;
Resolution
您必须使用 Oracle Recovery Manager (RMAN) 插件执行损坏的数据块恢复,以使损坏的数据库文件恢复正常运行状况。
根据 DELL Avamar for Oracle 用户指南,您必须先配置数据库以进行损坏数据块恢复。这是通过将 Oracle 数据库的DB_BLOCK_CHECKSUM初始化参数设置为 TYPICAL 来实现的。此参数设置使 RMAN 能够检测物理和逻辑损坏。
然后按照 DELL Avamar for Oracle 用户指南 中的说明将数据库恢复到原始客户端。在 “恢复类型 ”字段中,选择“损坏的数据块”选项。
如果损坏数据块恢复失败,则使用 SET MAXCORRUPT 命令设置文件中允许的损坏总数。默认值为零,这意味着 RMAN 不容忍任何类型的损坏数据块。
如果在备份过程中 RMAN 遇到损坏的数据块时超过了 MAXCORRUPT 限制,则 RMAN 会终止备份。否则,RMAN 会将损坏的数据块写入备份,并带有指示数据块标记为损坏的特殊标头。
参考资料: https://docs.oracle.com/cd/B28359_01/backup.111/b28273/rcmsynta043.htm#RCMRF153 (外部链接)
但是,使用 Avamar Administrator 控制台的备份无法利用此解决方法。因此,您必须使用 Oracle Recovery Manager (RMAN) 脚本执行命令行备份。按照《Avamar Oracle 用户指南》中的“使用 Oracle RMAN 进行备份和恢复”部分进行参考。
要永久修复损坏的数据块问题(推荐),您必须联系 Oracle 支持以进行进一步的故障处理。