ORA-00376: file 11 cannot be read at this time или зачем придумали понедельник?
dbstalker, 18 января
Выходные прошли нормально. Началась рабочая неделя. И вот тебе - ORA-00376: file 11 cannot be read at this time . А так все хорошо начиналось.
Ситуация вот какая:
Выполнялся на выходных холодный бэкап. База остановлена, файлы данных архивируются с помощью winrar. Похоже, что архивация в какой-то момент зависла. Бэкап не был завершен, база не открывалась. Народ пришел на работу, а приложения не работают. Никто не додумался посмотреть, что ж там с бэкапом, а просто решили базу открыть. Она то открылась. Но получено сообщение об ошибке:
ORA-00376: file 11 cannot be read at this time
ORA-01110: data file 11: 'C:\ORACLE\ORADATA\my_db\my_df.ORA'
Вот только тогда посмотрели, что же этот файл держит. Оказалось архиватор. :) Бэкап прерывают, базу открывают. Но опять эта же ошибка.
select status,file# from v$datafile;
Статус нашего файла данных - RECOVER. Выполняем восстановление :
SQL> recover datafile 'C:\ORACLE\ORADATA\my_db\my_df.ORA';
SQL> alter database datafile 'C:\ORACLE\ORADATA\my_db\my_df.ORA' online;
Проблема решена.
Вывод: Как только оракл не может получить доступ к файлу данных, то сразу помечает его как требующего восстановления (RECOVER). И когда к файлу данных доступ для оракла открывается, то все равно придется выполнить RECOVER.