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

Применимо к:SQL Server

В этой статье объясняется, как восстановить полную резервную копию базы данных с помощью SQL Server Management Studio.

ограничения

Перед восстановлением базы данных по модели полного восстановления или восстановления с неполным протоколированием, возможно, необходимо будет выполнить резервное копирование активного журнала транзакций (который называется заключительным фрагментом журнала). Дополнительные сведения см. в разделе Создание резервной копии журнала транзакций (SQL Server).

При восстановлении базы данных из другого экземпляра примите во внимание сведения из раздела Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).

Чтобы восстановить зашифрованную базу данных, потребуется доступ к сертификату или асимметричному ключу, использовавшемуся для шифрования этой базы данных. Без сертификата или асимметричного ключа вы не сможете восстановить базу данных. Сохраняйте сертификат, который использовали для шифрования ключа шифрования базы данных, в течение всего периода хранения резервной копии. Дополнительные сведения см. в статье SQL Server Certificates and Asymmetric Keys.

При восстановлении базы данных более старой версии до более новой версии SQL Server эта база данных будет автоматически обновлена до новой версии. Это исключает возможность использования базы данных с более старой версией Компонент Database Engine. Но это относится к обновлению метаданных и не влияет на уровень совместимости базы данных. Если уровень совместимости пользовательской базы данных до обновления был 100 или выше, после обновления он останется таким же. Если уровень совместимости до обновления равен 90, в обновленной базе данных устанавливается уровень совместимости 100, что является самым низким поддерживаемым уровнем совместимости в SQL Server 2016 (13.x) и выше. Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).

Как правило, база данных сразу становится доступной. Однако если база данных SQL Server 2005 (9.x) содержит полнотекстовые индексы, то в процессе обновления будет произведен их импорт, сброс или перестроение в зависимости от установленного значения свойства сервера Режим обновления полнотекстового каталога . Если выбран режим обновления Импортировать или Перестроить, то полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а повторная сборка — до десяти раз дольше.

Если выбран режим обновления Импорт, а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Сведения о просмотре и изменении параметра Режим обновления полнотекстового поиска см. в статье Наблюдение за полнотекстовым поиском для экземпляра сервера и управление им.

Сведения о SQL Server восстановлении из Хранилище BLOB-объектов Azure см. в статье SQL Server Резервное копирование и восстановление с помощью Microsoft Хранилище BLOB-объектов Azure.

Примеры

A. Восстановление полной резервной копии базы данных

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.

  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...

  3. Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, используйте страницу Общие , раздел Источник . Выберите один из следующих вариантов.

    • База данных

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

      Примечание

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

    • Устройство

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

      • Диалоговое окноВыбор устройств резервного копирования .

        Носитель данных резервной копии
        Выберите тип носителя в раскрывающемся списке Тип носителя данных резервной копии . Примечание. Параметр Лента появляется только в случае, если на компьютере установлен ленточный накопитель, а параметр Устройство резервного копирования — только в случае, если имеется хотя бы одно устройство резервного копирования.

        Добавление
        В зависимости от типа носителя данных, выбранного в поле Носитель резервной копии , при нажатии кнопки Добавить открывается одно из следующих диалоговых окон. (Если список в поле со списком Тип носителя резервной копии заполнен, кнопка Добавить недоступна.)

        Тип носителя данных . Описание
        Файл Локальный файл резервной копии В данном диалоговом окне можно выбрать локальный файл из дерева или указать удаленный файл, используя его полное имя в формате UNC. Дополнительные сведения см. в разделе Устройства резервного копирования (SQL Server).
        Устройство Выбор устройства резервного копирования В данном диалоговом окне из списка можно выбрать логические устройства резервного копирования, определенные на экземпляре сервера.
        Лента Выбор ленты с резервной копией В данном диалоговом окне из списка можно выбрать ленточные накопители, физически подключенные к компьютеру, на котором запущен экземпляр SQL Server.
        URL-адрес Выберите расположение файла резервной копии В этом диалоговом окне можно выбрать существующие учетные данные SQL Server или контейнер хранилища Azure, добавить новый контейнер хранилища Azure с подписанным URL-адресом или сформировать подписанный URL-адрес и учетные данные SQL Server для уже существующего контейнера хранилища. См. также статью Соединение с подпиской Microsoft Azure

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

        Contents
        Отображает содержимое носителя выбранного файла, ленты или устройства резервного копирования. Эта кнопка может не работать, если тип носителя — URL-адрес.

        Тип носителя резервной копии
        Перечисляет выбранные носители.

        После добавления нужных устройств в список Резервный носитель нажмите кнопку ОК , чтобы вернуться на страницу Общие .

      В списке Источник > Устройство > База данных выберите имя базы данных, которую нужно восстановить.

      Примечание

      Данный список доступен, только если выбран параметр Устройство . Будут выбраны только те базы данных, резервные копии которых доступны на выбранном устройстве.

  4. В разделе Назначение , в поле База данных автоматически появится имя базы данных для восстановления. Для изменения имени базы данных введите новое имя в окно База данных .

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

  6. В сетке Резервные наборы данных для восстановления выберите нужные резервные наборы. В этой сетке отображаются резервные копии, доступные в указанном месте. По умолчанию предлагается план восстановления. Чтобы переопределить предложенный план восстановления, можно изменить выбранные элементы в сетке. Выбор всех резервных копий, которые зависят от восстановления более ранних копий, отменяется автоматически, как только отменяется выбор более ранних копий. Сведения о столбцах в сетке Резервные наборы данных для восстановления см. в разделе Восстановление базы данных (страница "Общие")".

  7. При необходимости выберите Файлы в области Выбор страницы , чтобы открыть диалоговое окно Файлы . Отсюда можно восстановить базу данных в новое расположение, определив новое место восстановления для каждого файла в сетке Восстановить файлы базы данных как . Дополнительные сведения об этой сетке см. в разделе Восстановление базы данных (страница "Файлы")".

  8. Чтобы просмотреть или выбрать дополнительные параметры, на странице Параметры на панели Параметры восстановления вберите любой из следующих параметров, если он подходит к данной ситуации.

    1. ПараметрыWITH (необязательно):
    • Перезаписать существующую базу данных (WITH REPLACE)

    • Сохранить параметры репликации (WITH KEEP_REPLICATION)

    • Ограничить доступ к восстановленной базе данных (WITH RESTRICTED_USER)

    1. Выберите параметр в поле Состояние восстановления . В данном окне определяется состояние базы данных после операции восстановления.
    • По умолчанию используется схема RESTORE WITH RECOVERY, которая выполняет откат незафиксированных транзакций и после завершения оставляет базу данных работоспособной. Невозможно восстановить дополнительные журналы транзакций. Выберите этот вариант, если выполняется восстановление сразу всех необходимых резервных копий.

    • Схема RESTORE WITH NORECOVERY оставляет базу данных в нерабочем состоянии и не выполняет откат незафиксированных транзакций. Можно восстановить дополнительные журналы транзакций. Базу данных нельзя использовать, пока она не будет восстановлена.

    • СхемаRESTORE WITH STANDBY оставляет базу данных в режиме только для чтения. С помощью данного параметра можно отменить незафиксированные транзакции и сохранить отмененные действия в резервном файле, чтобы результаты восстановления можно было отменить.

    1. Создайте резервную копию заключительного фрагмента журнала до восстановления Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала. Дополнительные сведения см. в разделе Сценарии, в которых требуется резервная копия заключительного фрагмента журнала статьи Резервные копии заключительного фрагмента журнала (SQL Server).

    2. Если имеются активные соединения с базой данных, то операция восстановления может завершиться ошибкой. Проверьте окно Закрыть существующие соединения и убедитесь, что все активные соединения между Среда Management Studio и базой данных закрыты. Эта настройка переводит базу данных в однопользовательский режим перед началом процедуры восстановления, а затем возвращает в многопользовательский режим после ее завершения.

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

Дополнительные сведения об этих параметрах восстановления см. в разделе Восстановление базы данных (страница параметров).

  1. Щелкните ОК.

Б. Восстановление более ранней резервной копии диска поверх существующей базы данных

В следующем примере восстанавливается более ранняя резервная копия диска из базы данных Sales и перезаписывается существующая база данных Sales.

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.

  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...

  3. На странице Общие выберите пункт Устройство в разделе Источник .

  4. Нажмите кнопку обзора (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования . Выберите Добавить и перейдите к резервной копии. После выбора файлов резервной копии диска нажмите кнопку ОК .

  5. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .

  6. Выберите Параметры в области Выбор страницы .

  7. в разделе Параметры восстановления установите флажок Перезаписать существующую базу данных (WITH REPLACE) .

    Примечание

    Если этот параметр не выбран, может отобразиться следующее сообщение об ошибке: "System.Data.SqlClient.SqlError: резервный набор данных содержит резервную копию базы данных, отличающуюся от существующей базы данных Sales. (Microsoft.SqlServer.SmoExtended)"

  8. В разделе Резервная копия заключительного фрагмента журнала снимите флажок Делать резервную копию заключительного фрагмента журнала перед восстановлением.

    Примечание

    Не для всех сценариев восстановления требуется резервная копия заключительного фрагмента журнала. Резервная копия заключительного фрагмента журнала не нужна, если точка восстановления содержится в более ранней резервной копии журнала. Кроме того, резервная копия заключительного фрагмента журнала не требуется при перемещении или замещении (перезаписи) базы данных, при котором не нужно восстанавливать ее на определенный момент времени после создания ее последней резервной копии. Дополнительные сведения см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).

    Этот параметр недоступен для баз данных при использовании ПРОСТОЙ модели восстановления.

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

    Примечание

    Если вы не выберете этот параметр, может отобразиться следующее сообщение об ошибке: "System.Data.SqlClient.SqlError: Не удалось получить монопольный доступ, так как база данных используется. (Microsoft.SqlServer.SmoExtended)"

  10. Щелкните ОК.

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

В следующем примере восстанавливается более ранняя резервная копия диска из базы данных Sales и создается новая база данных с именем SalesTest. При этом исходная база данных, Sales, все еще существует на сервере.

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.

  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...

  3. На странице Общие выберите пункт Устройство в разделе Источник .

  4. Нажмите кнопку обзора (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования . Выберите Добавить и перейдите к резервной копии. После выбора файлов резервной копии диска нажмите кнопку ОК .

  5. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .

  6. В разделе Назначение , в поле База данных автоматически появится имя базы данных для восстановления. Для изменения имени базы данных введите новое имя в окно База данных .

  7. Выберите Параметры в области Выбор страницы .

  8. В разделе Резервная копия заключительного фрагмента журнала снимите флажокДелать резервную копию заключительного фрагмента журнала перед восстановлением.

    Важно!

    Если оставить этот флажок установленным, существующая база данных Salesсменит состояние на состояние восстановления.

  9. Щелкните ОК.

    Примечание

    Если вы получаете следующее сообщение об ошибке:
    "System.Data.SqlClient.SqlError: резервная копия заключительного фрагмента журнала для базы данных "Sales" не создана. Если журнал содержит работу, потеря которой нежелательна, создайте резервную копию с помощью инструкции BACKUP LOG WITH NORECOVERY. Чтобы просто перезаписать содержимое журнала, используются предложения WITH REPLACE или WITH STOPAT с инструкцией RESTORE. (Microsoft.SqlServer.SmoExtended)".
    Скорее всего, вы не ввели название новой базы данных из шага 6 выше. Восстановление обычно не допускает случайной перезаписи базы данных другой базой данных. Если указанная в инструкции RESTORE база данных уже существует на текущем сервере, а идентификатор GUID семейства для заданной базы данных отличается от идентификатора GUID семейства для базы данных, записанного в резервном наборе данных, то ее восстановление не будет выполнено. Это является важной защитной мерой.

Г. Восстановление до точки во времени

В следующем примере база данных восстанавливается в состояние на 1:23:17 PMMay 30, 2016 и демонстрируется операция восстановления, использующая несколько резервных копий журналов. База данных в настоящее время не существует на сервере.

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.
  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...
  3. На странице Общие выберите пункт Устройство в разделе Источник .
  4. Нажмите кнопку обзора (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования . Выберите Добавить и перейдите к полной резервной копии и всем соответствующим резервным копиям журнала транзакций. После выбора файлов резервной копии диска нажмите кнопку ОК .
  5. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .
  6. В разделе Назначение выберите Временная шкала , чтобы открыть диалоговое окно Временная шкала резервного копирования , чтобы вручную выбрать момент времени для остановки действия восстановления.
  7. Выберите Указанные дата и время.
  8. В раскрывающемся списке Интервал временной шкалы поменяйте значение на Час (необязательно).
  9. Переместите ползунок в нужное время.
  10. Нажмите кнопку ОК , чтобы вернуться на страницу Общие.
  11. Щелкните ОК.

Д. Восстановление резервной копии с помощью службы хранилища Microsoft Azure

Общие шаги

В двух примерах ниже выполняется восстановление базы данных Sales из резервной копии, расположенной в службе хранилища Microsoft Azure. Имя учетной записи хранилища — mystorageaccount. Контейнер называется myfirstcontainer. Для краткости первые шесть шагов перечислены здесь однократно, а все примеры начинаются с шага 7.

  1. В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.
  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...
  3. На странице Общие выберите пункт Устройство в разделе Источник .
  4. Нажмите кнопку обзора (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования.
  5. Выберите URL-адрес в раскрывающемся списке Тип носителя резервной копии: .
  6. Нажмите кнопку Добавить , и откроется диалоговое окно Выбор расположения файла резервной копии .

E1. Восстановление чередующейся резервной копии поверх существующей базы данных при наличии подписанного URL-адреса.

Хранимая политика доступа была создана с правами на чтение, запись, удаление и составление списков. Подписанный URL-адрес, связанный с хранимой политикой доступа, был создан для контейнера https://mystorageaccount.blob.core.windows.net/myfirstcontainer. Шаги, в основном, одинаковы, если учетные данные SQL Server уже существуют. База данных Sales в настоящее время существует на сервере. Файлы резервной копии — Sales_stripe1of2_20160601.bak и Sales_stripe2of2_20160601.bak.

  1. Выберите https://mystorageaccount.blob.core.windows.net/myfirstcontainer из раскрывающегося списка Контейнер хранилища Azure: , если учетные данные SQL Server уже существуют. В противном случае введите имя контейнера вручную https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  2. Введите подписанный URL-адрес в поле форматированного текста Подписанный URL-адрес: .
  3. Нажмите кнопку ОК , и откроется диалоговое окно Поиск файла резервной копии в Microsoft Azure .
  4. Разверните узел Контейнеры и перейдите к https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  5. Удерживая клавишу ctrl, выберите файлы Sales_stripe1of2_20160601.bak и Sales_stripe2of2_20160601.bak.
  6. Щелкните ОК.
  7. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .
  8. Выберите Параметры в области Выбор страницы .
  9. в разделе Параметры восстановления установите флажок Перезаписать существующую базу данных (WITH REPLACE) .
  10. В разделе Резервная копия заключительного фрагмента журнала снимите флажок Делать резервную копию заключительного фрагмента журнала перед восстановлением.
  11. В разделе Соединения с сервером установите флажок Закрыть существующие подключения к целевой базе данных.
  12. Щелкните ОК.

E2. Подписанный URL-адрес не существует

В этом примере Sales база данных в настоящее время не существует на сервере.

  1. Выберите Добавить , и откроется диалоговое окно Подключение к подписке Майкрософт .
  2. Завершите диалоговое окно Подключение к подписке Майкрософт и нажмите кнопку ОК , чтобы вернуться в диалоговое окно Выбор расположения файла резервной копии . См. дополнительные сведения в статье Соединение с подпиской Microsoft Azure .
  3. Нажмите кнопку ОК в диалоговом окне Выбор расположения файла резервной копии и откроется диалоговое окно Поиск файла резервной копии в Microsoft Azure .
  4. Разверните узел Контейнеры и перейдите к https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  5. Выберите файл резервной копии и нажмите кнопку ОК.
  6. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .
  7. Щелкните ОК.

Е. Восстановление локальной резервной копии в хранилище Microsoft Azure (URL)

База данных Sales будет восстановлена в контейнер хранилища Microsoft Azure https://mystorageaccount.blob.core.windows.net/myfirstcontainer из резервной копии, расположенной по адресу E:\MSSQL\BAK. Учетные данные SQL Server для контейнера Azure уже созданы. Учетные данные SQL Server для целевого контейнера уже должны существовать, так как его нельзя создать с помощью задачи "Восстановление". База данных Sales в настоящее время не существует на сервере.

  1. В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.
  2. Щелкните правой кнопкой мыши узел Базы данных и выберите команду Восстановить базу данных...
  3. На странице Общие выберите пункт Устройство в разделе Источник .
  4. Нажмите кнопку обзора (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования.
  5. Выберите Файл в раскрывающемся списке Тип носителя резервной копии: .
  6. Выберите Добавить , и откроется диалоговое окно Поиск файла резервной копии .
  7. Перейдите к E:\MSSQL\BAK, выберите файл резервной копии и нажмите кнопку ОК.
  8. Нажмите кнопку ОК , чтобы вернуться на страницу Общие .
  9. Выберите Файлы в области Выбор страницы .
  10. Установите флажок Переместить все файлы в папку.
  11. Укажите контейнер, https://mystorageaccount.blob.core.windows.net/myfirstcontainer, в текстовых полях Папка файла данных: и Папка файлов журнала: .
  12. Щелкните ОК.

См. также:

Создание резервной копии журнала транзакций (SQL Server)
Создание полной резервной копии базы данных (SQL Server)
Восстановление базы данных в новое место (SQL Server)
Восстановление резервной копии журнала транзакций (SQL Server)
RESTORE (Transact-SQL)
Восстановление базы данных (страница «Параметры»)
Восстановление базы данных (страница "Общие")