Практический опыт восстановления базы данных
Oracle версии 9.2.0.6 в режиме NOARCHIVELOG, ~1.5 ТБ, после серьёзного сбоя файловой системы и «ручного» запуска утилиты fsck.ext2 файлы данных оказались в /lost+found поименоваными номерами inod’ов, controlfile отсутствуют (пропали при восстановлении – 3 штуки :), redolog-файлы, как выяснилось, повреждены.
Применение стандартного рецепта:
SQL> CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS NOARCHIVELOG;
Control file created.
SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE ALLOW 1 CORRUPTION;
ORA-00279: change XXX generated at DD/MM/YYYY HH24:MI:SS needed for thread 1
ORA-00289: suggestion : ....dbf
ORA-00280: change XXX for thread 1 is in sequence #YYY
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
пытаемся предложить redolog файл и получаем ошибку, несмотря на ALLOW CORRUPTION
ORA-00283: recovery session canceled due to errors ORA-00368: checksum error in redo log block ORA-00353: log corruption near block XXX change XXX time DD/MM/YYYY ORA-00334: archived log: '/../redo01.log'
лог-файл повреждён и дублей нет :( Соответственно, БД открыть не удаётся:
SQL> ALTER DATABASE OPEN RESETLOGS; ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: '/../system.dbf'
На Metalink находим документ 418476.1 RECOVER A DATAFILE WITH MISSING ARCHIVELOGS, проблема известна, варианты решения:
- Восстановить и накатить всё по-хорошему – увы, не получается
- Открыть БД с параметром _ALLOW_RESETLOGS_CORRUPTION=TRUE. Успех не гарантируется. В случае успеха рекомендуется срочно пересоздать БД через экспорт -> импорт в новую БД, установив при экпорте Event 10231*.
- «Manually extract the data using the Oracle’s Data Unloader (DUL), which is performed by Oracle Field Support on-site for an extra charge«
Второй вариант сработал.
[Очень] порадовало существование третьего варианта – пусть даже за доп.деньги, возможно ВОССТАНОВЛЕНИЕ ДАННЫХ из практически ЛЮБЫХ файлов данных Oracle!
*) 21205.1 EVENT: 10231 «skip corrupted blocks on _table_scans_»
0 Ответы в “Как открыть БД с повреждёнными (недоступными) log-файлами”