Восстановление базы данных из резервной копии в MS SQL Server 2012
Раннее я уже писал о создании резервных копий в MS SQL Server 2012. В данной статье подробно рассмотрим процессе восстановления базы данных из имеющейся резервной копии (резервных копий) в MS SQL Server 2012 (в более ранних версиях, например в MS SQL Server 2008 набор действий аналогичен).
0. Оглавление
1. Восстановление базы данных
Подключаемся к MS SQL Server c помощью программы «SQL Server Management Studio». В Microsoft Windows Server 2012 R2 ее можно найти в списке всех программ.

В Microsoft Windows Server 2008 R2 в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Среда SQL Server Management Studio».

Вводим адрес сервера или его псевдоним, данные для авторизации и нажимаем «Соединить» (Connect).

Слева, в обозревателе объектов (Object Explorer), раскрываем вкладку «Базы данных» (Server Oblects), находим в списке базу данных из которой (или в которую) необходимо восстановить данные, кликаем по ней правой кнопкой мыши, затем в появившемся контекстном меню выбираем «Задачи» (Tasks) — «Восстановить» (Restore) — «База данных…» (Database…)

Запустится мастер восстановления базы данных (Restore Database). Выбираем базу источник (Source for restore), при этом мастер попробует автоматически подобрать последовательность файлов резервных копий для восстановления базы на текущий момент времени.

Если же требуется загрузить данные из конкретного файла или устройства резервного копирования, то необходимо установить соответствующий переключатель в положение «Устройство» (From device) и вручную указать источник для восстановления.

Затем необходимо выбрать базу данных назначения (Destination for restore), т. е. ту информационную базу в которую будут загружаться данные. Эта может быть как база с которой делалась резервная копия, так и любая другая база данных, зарегистрированная на текущем экземпляре SQL Server.

Нажав кнопку «Временная шкала…» (Timeline) можно указать время на которое необходимо восстановить данные. При имеющейся копии журнала транзакций время восстановления можно выбрать с точностью до секунды (или имеющегося checkpoint’а в журнале транзакций).

Очень важно (!) также помнить о том, что если восстановление данных осуществляется в информационную базу отличную от той с которой производилось резервное копирование (т. е. необходимо скопировать базу данных) то на вкладке «Файлы» (Files) необходимо указать путь к файлам этой информационной базы.

На вкладке «Параметры» (Options) можно указать дополнительные параметры резервного копирования. В частности:
- Флаг «Перезаписать существующую базу данных (WITH REPLACE)» (Overwrite the existing database) указывает, что операция восстановления перезапишет файлы любой базы данных, в настоящее время использующей имя, указанное в качестве базы данных назначения.
- Флаг «Сохранить параметры репликации (WITH KEEP_REPLICATION)» (Preserve the replication settings) сохраняет настройки репликации при восстановлении опубликованной базы данных на сервере, отличном от сервера, на котором была создана база данных. Этот параметр имеет значение, только если во время создания резервной копии проводилась репликация базы данных.
- Флаг «Ограничение доступа к восстановленной базе данных (WITH RESTRICTED_USER)» (Restrict access to the restored database) ограничит доступ к базе данных, за исключением пользователей с правами db_owner, dbcreator или sysadmin. Данный параметр имеет смысл использовать, например, если необходимо последовательно восстановить базу из нескольких файлов резервных копий, и доступ пользователей необходимо ограничить до завершения всех операций по восстановлению данных.
- Если оставить флаг «Создание резервной копии заключительного фрагмента журнала перед восстановлением» (Take tail-log backup before restore) то будет создана резервная копия заключительного фрагмента журнала транзакций. Если для точки во времени, выбранной в окне «Временная шкала резервного копирования» (Backup Timeline) требуется резервная копия заключительного фрагмента журнала, этот флажок будет установлен и снять его будет нельзя.
- Флаг «Закрыть существующие соединения» (Close existing connections option) переводит базу данных в однопользовательский режим перед началом выполнения процедуры восстановления, а затем возвращает в многопользовательский режим после ее завершения.
- Ну и наконец, флаг «Выдавать приглашение перед восстановлением каждой резервной копии» ( Prompt before restoring each backup ) указывает, что после восстановления каждой резервной копии будет выводиться диалоговое окно с вопросом, нужно ли продолжать последовательность восстановления. Этот параметр позволяет приостанавливать последовательность восстановления после восстановления каждой резервной копии. Он будет полезен, например, когда нужно поменять ленты в устройстве, если на сервере имеется только одно ленточное устройство.

Когда все необходимые параметры установлены нажимаем «ОК» для запуска процесса восстановления базы данных. После того, как все операции по восстановлению будут завершены увидим соответствующее уведомление.

2. Просмотр информации о событиях резервного копирования и восстановления для базы данных
Для того чтобы узнать, когда производилось создание резервных копий конкретной базы данных, а также восстановление базы данных из резервной копии, можно воспользоваться стандартным отчетом «События резервного копирования и восстановления» (Backup and Restore Events). Для формирования данного отчета необходимо в Обозревателе объектов (Server Oblects) кликнуть правой кнопкой мыши по соответствующей базе данных, в контекстном меню выбрать «Отчеты» (Reports) — «Стандартный отчет» (Standart Reports) — «События резервного копирования и восстановления» (Backup and Restore Events).

Сформировавшийся отчет содержит в себе следующие данные:
- Среднее время, затрачиваемое на операции резервного копирования (Average Time Taken For Backup Operations)
- Успешные операции резервного копирования (Saccessful Backup Operations)
- Ошибки операции резервного копирования (Backup Operation Errors)
- Успешные операции восстановления (Saccessful Restore Operations)

Для просмотра данной информации необходимо раскрыть соответствующую группировку в отчете.

Смотрите также:
Ниже приведена пошаговая инструкция, показывающая как добавить новую базу данных в Microsoft SQLServer 2012 (в более старых редакциях, например в Microsoft SQL Server 2008 R2, набор действий аналогичен). Запускаем…
Системная база данных tempdb служит рабочим пространством для хранения временных объектов, таких как временные таблицы, промежуточные результаты вычислений, временные хранимые процедуры, результаты буферов и сортировки, внутренние объекты, создаваемые компонентой Database…
Ниже будет подробно рассказано о том, как создать резервную копию базы данных в MS SQL Server 2012. В младших версиях (например в MS SQL Server 2008) алгоритм получения резервной копии…
IT Записки
Восстановление копии одной базы Microsoft SQL Server в другую
Резервный набор данных содержит копию базы данных, отличной от существующей базы данных — знакомо сообщение? Восстановить Backup одной базы данных Microsoft SQL Server в другую «в лоб» приводит к сообщению об ошибке. Нередко встречаюсь с ситуациями, когда горе админы на этом и завершают свои попытки восстановления базы. Ниже приведу пример восстановления из копии одной базы в другую.
Диагноз: Резервный набор данных содержит копию базы данных, отличной от существующей базы данных
Была сделана копия заданием или T-SQL из базы в файл.
Попытка восстановления на другом сервере или на этом же, но в другую базу приводит к сообщению об ошибке:
Расстановка галок в разных комбинациях, как рекомендуют чудо админы на множестве форумов ни к чему не приводят.
Суть проблемы
Создавая Backup базы данных SQL Server сохраняет данные и о файлах и путях к ним, а также еще вагон служебной инфы.
При попытке восстановления в другую БД, естественно указанные ресурсы не обнаруживаются, и пользователь получает чудное сообщение, что база нужна другая.
Способ решения
При восстановлении нужно явно указать какие файлы данных куда сохранять.
В процессе восстановления, фактически создаются файлы со структурой соответствующей копии, но с другими именами и путями.
Все это подробно описано в доке для разработчиков Microsoft, но в многобукофф не многие хотят разбираться.
Процесс
Разберем процесс создания копии и восстановления от начала до конца. В примере будет приведен способ с T-SQL. Как аналогичное сделать с использованием пользовательского интерфейса в части восстановления – понятия не имею.
Процесс рассматриваем на примере Microsoft SQLS erver 2012, но другие версии особо от него не отличаются.
Исходную базу данных будем рассматривать trade.
База данных, в которую будем грузить будет называться tradenew.
Сам Microsoft SQL Server установлен со значениями путей по-умолчанию.
Создание резервной копии базы данных Microsoft SQL Server
Создаем запрос для формирования файла резервной копии базы данных trade.
Таким образом файл копии базы данных будет расположен в папке
Получение списка файлов в файле копии
Имена файлов нам нужны для того, чтоб точно указать куда они будут сохранены при восстановлении.
Создаем и запускаем запрос:
Восстановление базы данных
Предварительно создавать новую базу ненужно, т.е. в списке у вас ее не должно быть!
Восстановление резервной копии базы данных
(среда SQL Server Management Studio)
В данной статье подробно рассмотрим процесс восстановления полной резервной копии базы данных с использованием среды SQL Server Management Studio.
Введите адрес сервера или его псевдоним и данные для авторизации.
Нажмите «Соединить».

В Обозревателе объектов разверните дерево сервера, нажав на имени сервера. Раскройте узел «Базы данных» и выберите из раскрывающегося списка базу данных для восстановления, нажмите по ней правой кнопкой мыши и в появившемся контекстном меню выберите «Задачи» — команду «Восстановить» — «База данных…».

Запустится Мастер восстановления базы данных.
Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, выберите вариант «Устройство».
Нажмите на кнопку обзора (…), после чего откроется диалоговое окно «Выберите устройство резервного копирования». В поле «Тип носителя резервной копии» в раскрывающемся списке выберите «Файлы». Нажмите кнопку «Добавить» и укажите носитель и расположение резервной копии для восстановления.
После добавления устройства в список «Расположение резервной копии» нажмите «OK» для возвращения на вкладку «Общие».

В разделе «Назначение», в поле «База данных» автоматически появится имя базы данных для восстановления. Если потребуется изменить имя базы данных, просто введите новое имя в окно «База данных».

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

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

Для просмотра или выбора дополнительных параметров нажмите на вкладку «Параметры» на панели «Выбор страницы». При необходимости здесь можно указать любые из следующих параметров, подходящих к ситуации:
- переписать существующую базу данных;
- сохранить настройки репликации;
- ограничить доступ к восстановленной базе данных.

Установив все необходимые параметры, нажмите кнопку «ОК». Запустится процесс восстановления базы данных.
После того, как процесс по восстановлению будет завершен увидим уведомление «Восстановление базы данных успешно завершено».
Восстановление bak базы sql в другую базу?
И запроси у начальства курсы по обучению пользованием гугля.
(0) Да можно.
Имя базы при восстановлении СМЕНИ!
Ну так SQL робит 🙂
Восстановление SQL
1. Создать новую базу, любого имени (Лучше правлильного)
2. Сперва при восстановлении, открываешь третью вкладку (их тама в окне 3)
Ставишь галки (Закрывать соединение и Перезаписать существующие данные)
. Почему с третьей? — Потому что эти галки блокируются, при выборе файла. В некоторых случаях.
3. Открываешь первую вкладку и выбираешь восстановить из файла
а. Выбираешь файл
б. У тебя после выбора файла, имя базы сменится на то имя базы с которой делался бекап. Смени имя на то, что тебе надо (это просто выбор из списка)
4. Перейди на вкладку 2 и укажи галочку (Переместить файлы и заменить — для страховки)
Укажи нужные каталоги для нужных файлов- там их два Данные и Лог, трудно перепутать.
5. Восстанавливай, все ок. получится.
6. Если будет ошибка, то закрывай окно восстановления и открывай его повторно, SQL привередлив, любит все новое 🙂