一:问题描述
SQL> l
1 select name,status
2* from v$archived_log
--发现,有的日志状态竟然为X,但这个归档日志明明存在呀,而且又是我恢复数据所需要的。
NAME S
-------------------------------------------------- -
/home/oracle/arch/1_16_858567385.arc X
/home/oracle/arch/1_17_858567385.arc X
/home/oracle/arch/2_14_858567385.arc A
/home/oracle/arch/2_15_858567385.arc A
--X代表expired。
二:出错原因
控制文件里记录了这个归档日志的位置,当这个归档日志被移走了(即使你后来又将其移动过来了)或者删除了,该归档日志就会被标记为EXPIRED。
在RAC环境下,如果起初rac2归档路径下没有rac1的归档日志,即使你后来通过ASM或者NFS共享,rac2归档路径下有了rac1的归档日志,但此时该归档日志还是会被标记为EXPIRED。
三:解决办法
当你确定该归档日志物理上存在后,crosscheck archivelog all
现在再查看状态,变成A了。欧耶!
NAME S
-------------------------------------------------- -
/home/oracle/arch/1_16_858567385.arc A
/home/oracle/arch/1_17_858567385.arc A
/home/oracle/arch/2_14_858567385.arc A
/home/oracle/arch/2_15_858567385.arc A
--本篇文章参考自:http://blog.csdn.net/huang_xw/article/details/6428143