存储故障导致oracle 数据文件处于recover状态

环境:系统Linux 2.6.28.10  数据库版本:Oracle10g rac

故障描述:数据库连接不上,查看数据库日志ORA-00376: file 10 cannot be read at this time

      ORA-01110: data file 10: '+DATA01/********'

故障分析:查看硬件共享存储,由于更换硬盘,raid降级,正在做数据同步。同步过程中有报错 unreadable sector(s) detected ,扇区有报错。应该就是由此导致的。

      在系统里查看asm存储,

#export ORACLE_SID=+ASM1
#asmcmd
>lsdg

  

共享磁盘状态是正常的,接着查看数据文件状态

set pagesize 999;
set linesize 300;
col name for a100;
select file#,name,status from v$datafile;

10 +DATA01/*********       RECOVER  

数据文件10 status处于recover状态,其他的数据文件都是online状态

故障解决:先尝试将datafile 10 offline

alter database datafile 10 offline;

  执行成功后查看datafile的状态,依然是recover状态,看日志刚才的offline命令确实也执行成功了。先不管,

继续尝试直接recover,如果不行考虑从备份中restore再recover。

rman target /
recover datafile 10;

  执行过程中观察有没有报错。这次是直接执行成功了,没有报错。接着使datafile online

alter database datafile 10 online;

  执行成功后查看alert日志。已经恢复正常,不再报之前的错误。

posted @ 2022-01-11 14:50  wazz_s  阅读(1180)  评论(0编辑  收藏  举报