Pull to refresh

Symantec Backup Exec: восстановление Oracle, установленного на Linux

Reading time3 min
Views7.1K
В первой части было описано, как сделать резервную копию БД Oracle установленной на Linux средствами Symantec Backup Exec, теперь рассмотрим как из этой копии восстановить данные. Как и с резервным копированием не все так просто и очевидно.
Восстановление будет происходить в три этапа, это связано с тем, что SBE разделяет файлы и БД, когда мы настраивали резервную копию, мы выбирали в [ROOT] путь к ORACLE_HOME, и БД. В такой очередности и будем восстанавливать.

Этап 1. Восстановление ORACLE_HOME


Восстанавливать данные не обязательно на тот же самый сервер, такая возможность очень удобна, так как можно сделать тестовый сервер для разработок, а также проверить возможность восстановления и попрактиковаться в развертывании бэкапа. Итак приступим, создаем первое задание:
Меню > Файл > Создать > Задание восстановления


Выбираем в ресурсах имя сервера и дату для восстановления каталогов. На вкладке «Перенаправление файлов» указываем на какой сервер восстанавливать данные, если не нужно восстановить на тот же с которого был сделан бэкап. Нажимаем выполнить немедленно и наблюдаем в разделе «Монитор заданий» успешное выполнение задания.

Этап 2. Подготовка к восстановлению файлов данных


Поле того как ORACLE_HOME был восстановлен – было сделано восстановление только программной части БД ORACLE. Далее необходимо выполнить запуск базы. Так как файлов данных нет то можно запустить БД не больше чем в режиме mount.
SQL> startup nomount
lsnrctl start <SID>

Если вы восстанавливаете на другой сервер, то скорее всего попадете на ошибку связанную с файлом конфигурации БД, например
ORA-27102: out of memory
Linux Error: 12: Cannot allocate memory

Такая ошибка возникает, когда БД работает с spfile в котором остались настройки с другого сервера. Самый простой способ это найти стандартный файл примера конфигурации – он обычно имеет минимальный набор параметров для запуска БД. Искать его нужно в ORACLE_HOME/dbs, имя его init.ora. Обычный файл параметров pfile имеет имя init.ora. Итак пробуем запустить БД с другим файлом параметров.
SQL> shu immediate --- останавливаем БД
SQL> startup pfile=<путь к файлу параметров> nomount;

Если запуск успешен, то
SQL> create spfile from pfile=<путь к файлу параметров>;

Снова останавливаем и запускаем БД
SQL> shu immediate
SQL> startup nomount

База данных в режиме nomount, listener запущен, переходим к восстановлению файлов данных БД dbf (Так называемое расширение в названии файлов может быть любое, в Linux это не имеет значения и обозначается больше для удобства восприятия файлов).

Этап 3. Восстановление файлов данных БД Oracle.


Возвращаемся к консоли управления SBE на сервере резервного копирования данных.
По такому же принципу как в первом этапе создаем задание восстановления.
Меню > Файл > Создать > Задание восстановления


В этом задании мы выбираем раздел «Управляющие файлы» и выбираем один соответствующий тому времени на какой момент мы хотим восстановить БД. Далее также просматриваем все вкладки, в «Перенаправлении Oracle» указываем имя сервера на который мы восстанавливаем (отличный от того с которого был сделан бэкап) и останавливаемся на вкладке Oracle.

Рекомендую установить галочки как на картинке, это поможет избежать некоторых проблем например таких как не согласованность времени указанного вами и выбранного Управляющего файла. Момент на который будет произведено восстановление данных будет равен времени выбранного управляющего файла. Запускаем на восстановление, по окончанию успешного восстановления возвращаемся на сервер куда выполнили восстановление и выполняем следующее:
SQL> ALTER DATABASE OPEN RESETLOGS;

Если команда не возвратила ошибок, проверяем alert.log на наличие ошибок. Проблем не обнаружено – восстановление прошло успешно!
Tags:
Hubs:
Total votes 9: ↑9 and ↓0+9
Comments14

Articles