Oracle mechanics

20.04.2009

Как открыть БД с повреждёнными (недоступными) log-файлами

Filed under: Backup and Recovery,Oracle — Игорь Усольцев @ 15:57
Tags: ,

Практический опыт восстановления базы данных

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, проблема известна, варианты решения:

  1. Восстановить и накатить всё по-хорошему — увы, не получается
  2. Открыть БД с параметром _ALLOW_RESETLOGS_CORRUPTION=TRUE. Успех не гарантируется. В случае успеха рекомендуется срочно пересоздать БД через экспорт -> импорт в новую БД, установив при экпорте Event 10231*.
  3. «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_»

Добавить комментарий »

Комментариев нет.

RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Блог на WordPress.com.

%d такие блоггеры, как: