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


Как восстановить базу данных в новое место с новым именем (Transact-SQL)

Изменения: 14 апреля 2006 г.

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

ms190447.security(ru-ru,SQL.90).gifПримечание безопасности.
Не рекомендуется присоединять или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из ненадежного источника, выполните для нее инструкцию DBCC CHECKDB на тестовом сервере, а также изучите содержащийся в ней исходный код: хранимые процедуры и т. д.

Восстановление базы данных с новым именем

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

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

    • новое имя базы данных;
      ms190447.note(ru-ru,SQL.90).gifПримечание.
      При восстановлении базы данных на другой экземпляр сервера можно указать исходное имя вместо нового.
    • устройство резервного копирования, с которого происходит восстановление полной резервной копии базы данных;
    • предложение NORECOVERY, если существует другая резервная копия журналов транзакций для применения после восстановления резервных копий файлов. В противном случае укажите предложение RECOVERY.
      Резервные копии журналов транзакций, в случае их использования, должны включать в себя промежуток времени, в течение которого создавались резервные копии файлов;
    • предложение MOVE для каждого восстанавливаемого в новое место файла, если имена файлов уже существуют. Например, может потребоваться создание копии базы данных на том же сервере для проверки. В этом случае файлы базы данных для исходной базы данных уже существуют, и когда во время операции восстановления создается копия базы данных, должны быть указаны другие имена файлов.
      Предложение MOVE имеет следующий синтаксис:
      MOVE 'логическое_имя_файла_в_резервной_копии' TO 'имя_файла_в_операционной_системе'
      [ ,...n ] [ , ]
      Где logical_file_name_in_backup — имя файла данных или журнала в резервном наборе данных, имя_файла_в_операционной_системе — расположение, куда должен быть восстановлен файл, а n — заполнитель, указывающий на возможность указать дополнительные инструкции MOVE. Задайте инструкцию MOVE для каждого логического файла, который необходимо восстановить из резервного набора данных в новое расположение.
      ms190447.note(ru-ru,SQL.90).gifПримечание.
      Для получения списка логических файлов из резервного набора данных следует использовать инструкцию RESTORE FILELISTONLY.

Пример

В следующем примере создается новая база данных MyAdvWorks, представляющая собой копию существующей базы данных AdventureWorks, в которой содержится два файла: AdventureWorks_Data и AdventureWorks_Log. Поскольку база данных AdventureWorks уже существует, при выполнении операции восстановления файлы из резервной копии должны быть перенесены в другое место. Количество и имена восстанавливаемых файлов базы данных можно определить при помощи инструкции RESTORE FILELISTONLY.

ms190447.note(ru-ru,SQL.90).gifПримечание.
Пример создания полной резервной копии базы данных AdventureWorks см. в разделе Как создать полную резервную копию базы данных (Transact-SQL).
ms190447.note(ru-ru,SQL.90).gifПримечание.
В примерах резервного копирования и восстановления журнала транзакций из копии, включая восстановления на момент времени, используется база данных MyAdvWorks_FullRM, которая создается из базы данных AdventureWorks, как в следующем примере с базой данных MyAdvWorks. Однако полученную базу данных MyAdvWorks_FullRM необходимо изменить для использования полной модели восстановления: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.
USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO

См. также

Основные понятия

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

Другие ресурсы

RESTORE (Transact-SQL)
Учебник по среде SQL Server Management Studio

Справка и поддержка

Получение помощи по SQL Server 2005