Восстановление файлов в новое место (SQL Server)

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

В этом разделе описывается восстановление файлов в новом расположении в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

В этом разделе

Перед началом

Ограничения и запреты

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

  • RESTORE не допускается в явной или неявной транзакции.

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

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

Безопасность

Разрешения

Если восстанавливаемая база данных не существует, пользователь должен иметь разрешение CREATE DATABASE для выполнения RESTORE. Если база данных существует, RESTORE разрешения по умолчанию предоставляются членам фиксированных серверных ролей sysadmin и dbcreator, а также владельцу базы данных (dbo) (для параметра FROM DATABASE_SNAPSHOT база данных существует всегда).

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

Использование среды SQL Server Management Studio

Восстановление файлов в новое место

  1. В Обозреватель объектов подключитесь к экземпляру ядра базы данных SQL Server, разверните этот экземпляр и разверните Базы данных.

  2. Щелкните правой кнопкой мыши нужную базу данных, наведите указатель на пункт Задачи, а затем выберите пункты Восстановитьи Файлы и файловые группы.

  3. На странице Общие в списке В базу данных выберите базу данных для восстановления. Можно ввести новую базу данных или выбрать уже существующую из раскрывающегося списка. Список включает все базы данных на сервере кроме системных баз данных master и tempdb.

  4. Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, выберите один из следующих вариантов.

    • Из базы данных

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

    • С устройства

      Нажмите кнопку «Обзор файлов». В диалоговом окне Указание устройств резервного копирования выберите один из перечисленных типов устройств в списке Тип носителя резервной копии . Чтобы выбрать одно или несколько устройств в списке Носитель резервной копии , нажмите кнопку Добавить.

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

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

    Заголовок столбца Значения
    Восстановить Установленные флажки обозначают резервные наборы данных, отмеченные для восстановления.
    Имя Имя резервного набора данных.
    Тип файла Задает тип данных в резервной копии: Данные, Журналили Данные Filestream. Данные, содержащиеся в таблицах, хранятся в файлах типа Данные . Данные журнала транзакций хранятся в файлах типа Журнал . Данные больших двоичных объектов (BLOB), которые хранятся в файловой системе, находятся в файлах типа Данные Filestream .
    Тип Тип выполненного резервного копирования: Полное, Разностноеили Журнал транзакций.
    Сервер Имя экземпляра ядра СУБД, выполнившего операцию резервного копирования.
    Логическое имя файла Логическое имя файла.
    База данных Имя базы данных, участвовавшей в операции резервного копирования.
    Дата начала Дата и время начала операции резервного копирования, указанные в региональных настройках клиента.
    Дата завершения Дата и время завершения операции резервного копирования, указанные в формате, соответствующем региональным настройкам клиента.
    Размер Размер резервного набора данных в байтах.
    Имя пользователя Имя пользователя, выполнившего операцию резервного копирования.
  6. На панели Выбор страницы щелкните Параметры .

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

    Заголовок столбца Значения
    Имя исходного файла Полный путь исходного файла резервной копии.
    Тип файла Задает тип данных в резервной копии: Данные, Журналили Данные Filestream. Данные, содержащиеся в таблицах, хранятся в файлах типа Данные . Данные журнала транзакций хранятся в файлах типа Журнал . Данные больших двоичных объектов (BLOB), которые хранятся в файловой системе, находятся в файлах типа Данные Filestream .
    Сохранить как Полный путь к файлу базы данных, который нужно восстановить. Чтобы указать новый восстанавливаемый файл, щелкните текстовое поле и измените предложенные путь и имя файла. Изменение пути или имени файла в столбце Restore As эквивалентно использованию параметра MOVE в инструкции Transact-SQL RESTORE .
  8. Нажмите ОК.

Использование Transact-SQL

Восстановление файлов в новое место

  1. При необходимости выполните RESTORE FILELISTONLY инструкцию, чтобы определить количество и имена файлов в полной резервной копии базы данных.

  2. Выполните инструкцию RESTOREDATABASE для восстановления полной резервной копии базы данных, указав:

    • Имя базы данных для восстановления.

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

    • Предложение MOVE для каждого восстанавливаемого в новое место файла.

    • Предложение NORECOVERY.

  3. Если файлы были изменены после создания резервной копии файла, выполните RESTORE инструкцию LOG, чтобы применить резервную копию журнала транзакций, указав:

    • Имя базы данных, к которой будет применен журнал транзакций.

    • Устройство резервного копирования, с которого будет восстановлена резервная копия журнала транзакций.

    • Укажите предложение NORECOVERY, если у вас есть другая резервная копия протоколов транзакций для применения после текущей; в противном случае укажите предложение RECOVERY.

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

Пример (Transact-SQL)

В этом примере восстанавливаются два файла базы данных MyNwind , первоначально находившиеся на диске C, в новое место на диске D. Также будут применены два журнала транзакций для восстановления базы данных на текущий момент времени. Количество восстанавливаемых файлов базы данных, а также их логические и физические имена можно определить с помощью инструкции RESTORE FILELISTONLY .

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
RESTORE FILELISTONLY  
   FROM MyNwind_1;  
-- Restore the files for MyNwind.  
RESTORE DATABASE MyNwind  
   FROM MyNwind_1  
   WITH NORECOVERY,  
   MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf',   
   MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf';  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log2  
   WITH RECOVERY;  
GO  

См. также

Восстановление резервной копии базы данных с помощью SSMS
RESTORE (Transact-SQL)
Копирование баз данных путем создания и восстановления резервных копий
Восстановление файлов и файловых групп (SQL Server)