В некоторых случаях базу данных Oracle можно восстановить даже в том случае, если отсутствуют некоторые файлы, необходимые для выполнения холодного бекапа. Отсутствует файл параметров инициализации.
В этом случае нужно с помощью текстового редактора сделать этот файл. Минимум параметров, которые должны быть в этом файле: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;