Поделиться через


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

Область применения: SQL Server

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

ограничения

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

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

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

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

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

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

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

Примеры

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

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

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

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

    • База данных

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

      Примечание.

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

    • Устройство

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

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

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

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

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

        Удалить Удалитьs one or more selected files, tapes, or logical backup devices.

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

        Резервные носители перечисляют выбранный носитель .

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

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

      Примечание.

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

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

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

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

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

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

    1. ПараметрыWITH (необязательно):

      • Перезаписать существующую базу данных (WITH REPLACE)

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

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

    2. Выберите параметр в поле Состояние восстановления . В данном окне определяется состояние базы данных после операции восстановления.

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

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

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

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

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

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

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

  9. Нажмите ОК.

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

В следующем примере восстанавливается более ранняя резервная копия диска из базы данных 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 семейства для базы данных, записанного в резервном наборе данных, то ее восстановление не будет выполнено. Это является важной защитной мерой.

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

В следующем примере база данных восстанавливается в состояние на 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. Подпись общего доступа не существует

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

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

F. Восстановление локальной резервной копии в хранилище 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. Нажмите ОК.

G. Восстановление локальной резервной копии из хранилища объектов, совместимого с S3 (URL-адрес S3)

В приведенном ниже примере выполняется восстановление Sales из резервной копии, расположенной в хранилище объектов, совместимом с S3.
URL-адрес S3 имеет формат s3://<endpoint>:<port>/<bucket>/ , а файл резервной копии называется Sales.bak. Идентификатор секретного ключа и идентификатор ключа доступа получены от поставщика S3. База данных Sales в настоящее время не существует на сервере.

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

См. также