Как восстановить базу данных в новое место с новым именем (Transact-SQL)
Изменения: 14 апреля 2006 г.
В этом подразделе описана процедура восстановления базы данных в новое место и при необходимости с новым именем.
Примечание безопасности. |
---|
Не рекомендуется присоединять или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из ненадежного источника, выполните для нее инструкцию DBCC CHECKDB на тестовом сервере, а также изучите содержащийся в ней исходный код: хранимые процедуры и т. д. |
Восстановление базы данных с новым именем
При необходимости выполните инструкцию RESTORE FILELISTONLY, чтобы выяснить количество и имена файлов в полной резервной копии базы данных.
Для восстановления полной резервной копии базы данных выполните инструкцию RESTORE DATABASE, указав:
- новое имя базы данных;
Примечание. При восстановлении базы данных на другой экземпляр сервера можно указать исходное имя вместо нового. - устройство резервного копирования, с которого происходит восстановление полной резервной копии базы данных;
- предложение NORECOVERY, если существует другая резервная копия журналов транзакций для применения после восстановления резервных копий файлов. В противном случае укажите предложение RECOVERY.
Резервные копии журналов транзакций, в случае их использования, должны включать в себя промежуток времени, в течение которого создавались резервные копии файлов; - предложение MOVE для каждого восстанавливаемого в новое место файла, если имена файлов уже существуют. Например, может потребоваться создание копии базы данных на том же сервере для проверки. В этом случае файлы базы данных для исходной базы данных уже существуют, и когда во время операции восстановления создается копия базы данных, должны быть указаны другие имена файлов.
Предложение MOVE имеет следующий синтаксис:
MOVE 'логическое_имя_файла_в_резервной_копии' TO 'имя_файла_в_операционной_системе'
[ ,...n ] [ , ]
Где logical_file_name_in_backup — имя файла данных или журнала в резервном наборе данных, имя_файла_в_операционной_системе — расположение, куда должен быть восстановлен файл, а n — заполнитель, указывающий на возможность указать дополнительные инструкции MOVE. Задайте инструкцию MOVE для каждого логического файла, который необходимо восстановить из резервного набора данных в новое расположение.Примечание. Для получения списка логических файлов из резервного набора данных следует использовать инструкцию RESTORE FILELISTONLY.
- новое имя базы данных;
Пример
В следующем примере создается новая база данных MyAdvWorks
, представляющая собой копию существующей базы данных AdventureWorks
, в которой содержится два файла: AdventureWorks_Data
и AdventureWorks_Log
. Поскольку база данных AdventureWorks
уже существует, при выполнении операции восстановления файлы из резервной копии должны быть перенесены в другое место. Количество и имена восстанавливаемых файлов базы данных можно определить при помощи инструкции RESTORE FILELISTONLY
.
Примечание. |
---|
Пример создания полной резервной копии базы данных AdventureWorks см. в разделе Как создать полную резервную копию базы данных (Transact-SQL). |
Примечание. |
---|
В примерах резервного копирования и восстановления журнала транзакций из копии, включая восстановления на момент времени, используется база данных 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