26.02.2016 0 min to read

ORA-00214 – Controlfiles inconsistent

Category : Статьи

Ошибка ORA-00214 возникает в случае несогласованности двух копий управляющих файлов (control files). Такая ошибка может возникнуть во время запуска экземпляра БД.

sql> startup
ORACLE instance started.

Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 603980240 bytes
Database Buffers 461373440 bytes
Redo Buffers 4603904 bytes
ORA-00214: controlfile 'C:\ORACLE\ORADATA\MYSID\CONTROL02.CTL' version 4864
inconsistent with file 'C:\ORACLE\ORADATA\MYSID\CONTROL01.CTL' version 4861

 

Исправить эту ошибку можно следующим образом. Первое, что нам необходимо, это определить какой из control-файлов имеет самую позднюю версию. В нашем примере, для control02.ctl: version 4864, для control01.ctl: version 4861. Меняем системные настройки БД таким образом, чтобы остался один control-файл самой поздней версии:

sql> alter system set control_files='c:\oracle\oradata\MYSID\control02.ctl' scope=spfile;
sql> shutdown immediate;
sql> startup mount; --> монтирование должно пройти без ошибок
sql> alter database open;

 

Почему нам нужен файл именно последней версии? Чтобы не возникло конфликта несоответствия control-файлов с файлами redo. Если все прошло успешно, снова меняем параметры конфигурации control-файлов и останавливаем БД.

sql> alter system set control_files='c:\oracle\oradata\MYSID\control01.ctl',
'c:\oracle\oradata\MYSID\control02.ctl' scope=spfile;
sql> alter system switch logfile;
sql> alter system switch logfile;
sql> shutdown immediate;

 

Копируем файл CONTROL02.CTL и называем его CONTROL01.CTL. Если control-файлов было больше двух, делаем аналогичные копии для всех остальных файлов. Запускаем БД.

sql >startup
ORACLE instance started.

Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 603980240 bytes
Database Buffers 461373440 bytes
Redo Buffers 4603904 bytes
Database mounted.
Database opened.
sql>