Восстановление БД при отсутствии некоторых необходимых файлов

dbstalker, 28 января

В некоторых случаях базу данных можно восстановить даже в том случае, если отсутствуют некоторые файлы, необходимые для выполнения холодного бекапа.

Отсутствует файл параметров инициализации.

В этом случае нужно с помощью текстового редактора сделать этот файл. Минимум параметров, которые должны быть в этом файле:db_name, control_files , db_block_size. Если не знаете правильное значение этих параметров, то не беда. Выставьте их в любое значение. База данных не поднимется, но Вы получите ошибку(на консоль или в алерт лог), где будет указано правильное значение параметра.

Отсутствуют журнальные файлы.

Если холодная копия была выполнена при согласованном состоянии базы данных, то можно обойтись и без файлов журнализации. Для этого нужно открыть базу данных с опцией resetlogs.

startup  mount;
recover database  until  cancel   using  backup  controlfile;
…
Specify log: {=suggested | filename | AUTO | CANCEL}

Вводим: Cancel  

Media recovery cancelled.
alter database open resetlogs;

Отсутствуют управляющие файлы.

Обычно управляющие файлы мультиплексированы. Поэтому пропавший файл можно путем копирования и переименования создать из сохранившегося управляющего файла. Другой вариант – убрать упоминание об этом файле из параметра control_files в файле init.ora.

Если же пропали все управляющие файлы, тогда можно воспользоваться управляющими файлами из копии любой давности. Для этого нужно восстанавливать базу данных командами:

startup  mount;
recover database  until  cancel   using  backup  controlfile;
…
Specify log: {=suggested | filename | AUTO | CANCEL}

Вводим: Cancel  

Media recovery cancelled.
alter database open resetlogs;

Можно также воспользоваться следующим вариантом:

Если у Вас есть действующая исходная база данных, то на ней попробуйте создать скрипт командой

alter database backup controlfile to trace ;
или 
alter database backup controlfile to ‘имя_файла’;

Полученный скрипт немного нужно отредактировать: CREATE CONTROLFILE REUSE DATABASE … меняем на CREATE CONTROLFILE SET DATABASE

Установите в зависимости от ситуации resetlogs или noresetlogs

Исправить в случае необходимости месторасположение файлов базы данных.

После выполнения этого скрипта в состоянии БД nomount, будут созданы управляющие файлы, и базу данных можно будет открыть.

Вариант с пересозданием управляющего файла очень полезен, когда нужно поменять месторасположение файлов данных или журнальных файлов или файлы утеряны.

Утеряны файлы данных, принадлежащие табличному пространству отличному от system (sysaux)

В этом случае базу данных мы открыть сможем, но будут утеряна вся информация, хранящаяся в них. Последовательность действий следующая:

startup mount;
…
alter database datafile 'полное_имя_файла' offline  drop;
SQL> alter database  оpen;

 

Новый комментарий

Я не спамер: введите суму 9+6



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Нужен поставщик Дропшиппинг
10 декабря, 1 ответа
КИНО КАФЕ!!!!!!!!!!!!!!!!
10 декабря, 1 ответа