При попытке подключится к базе данных через SQLplus выводится сообщение об ошибке: Oracle is on initialization startup/shutdown. so you can not enter the database.
Сервер выдает стек ошибок:
ORA-00202: controlfile: 'C:\ORACLE\ORADATA\CONTROL02.CTL'
ORA-27091: skgfqio: unable to queue I/O
ORA-27070: skgfdisp: async read/write failed
OSD-04006: ReadFile() failure, unable to read from file
O/S-Error: (OS 23) Data error (cyclic redundancy check).
Из стека ошибок, можно сделать вывод о проблемах с одним из управляющим файлом, первое сообщение указывает, с каким именно.
Для решения проблемы выполняем следующие шаги:
- Соединяемся с базой данных через sqlplus, как SYS as SYSDBA
- Выполняем shutdown immediate
- Создаем резервную копию всех управляющих файлов, по-умолчанию их три, с расширением CTL, содержаться в каталоге ORADATA
- Переименовываем поврежденный файл CONTROL02.CTL в CONTROL02.bak
- Один из рабочих файлов, в нашем случае CONTROL01.CTL или CONTROL03.CTL копируем и переименовываем в CONTROL02.CTL
- Копируем новый файл в каталог ORADATA
- Стартуем базу данных, заходим через sqlplus SYS as SYSDBA и выполняем startup
Такое решение работает только в том случае, если поврежден один или два управляющих файла и требуется их замена. Кроме того управляющие файлы должны дублировать друг друга. Прежде чем заменять управляющие файлы, убедитесь, что один из них поврежден и сообщения об ошибках подтверждают это.