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

от автора

В первой части было описано, как сделать резервную копию БД 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 на наличие ошибок. Проблем не обнаружено – восстановление прошло успешно!

ссылка на оригинал статьи https://habrahabr.ru/post/277425/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *