用rman备份数据库时,报错:ORA-27037: unable to obtain file status,检查过期归档日志
现象:
在测试机上测试备份集的可用性的时候,我用rman恢复了一个数据库,是不完全恢复,也就是用一个0级备份,恢复数据文件,用一个归档日志文件备份恢复控制文件和归档日志文件,再recover database ,然后再用resetlogs方式open数据库。此时,我将测试数据库当作一个生产库做实验,应该给数据库做一个备份,是在开库状态下做备份。
这个备份过程中,数据文件备份没有问题,但是到归档日志备份中报错:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 11/29/2024 14:31:40
RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file /oracle/PROD/arch/1_250_1182528399.dbf
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7
由于备份在S3上,所以这个报错我一直因为是s3上的什么配置限制导致的,因为报的是一个linux的error,但是后来我将数据文件和归档日志的备份语句调换了一下。结果刚执行就报错了。
解决方法:
在rman中执行下面操作就可以避免报错了:
crosscheck archivelog all; ##检查归档日志文件,标记过期归档
delete obsolete; ##删除过期