Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается восстановление базы данных SQL Server в новое расположение и при необходимости переименование базы данных в SQL Server 2014 с помощью SQL Server Management Studio или Transact-SQL. Эта процедура позволяет переместить базу данных по новому пути каталога или создать копию базы данных на том же или другом экземпляре сервера.
В этом разделе
Перед началом:
Для восстановления базы данных в новое расположение и при необходимости переименуйте базу данных с помощью:
Перед началом работы
Ограничения и условия
- При восстановлении базы данных из полной резервной копии системный администратор должен быть единственным пользователем, работающим с базой данных.
Предпосылки
- Модель полного или массового протоколирования восстановления требует, чтобы перед восстановлением базы данных была сделана резервная копия активного журнала транзакций. Дополнительные сведения см. в разделе Создание резервной копии журнала транзакций (SQL Server).
Рекомендации
Чтобы восстановить зашифрованную базу данных, необходимо иметь доступ к сертификату или асимметричному ключу, который использовался для шифрования базы данных. Без сертификата или асимметричного ключа восстановить базу данных нельзя. Поэтому сертификат, используемый для шифрования ключа шифрования базы данных, должен храниться в течение всего времени, пока есть необходимость в резервной копии. Дополнительные сведения см. в статье SQL Server Certificates and Asymmetric Keys.
Дополнительные сведения о перемещении базы данных см. в разделе "Копирование баз данных с помощью резервного копирования и восстановления".
При восстановлении базы данных SQL Server 2005 или более поздней версии до SQL Server 2014 база данных автоматически обновляется. Как правило, база данных сразу становится доступной. Однако если в базе данных SQL Server 2005 есть полнотекстовые индексы, процесс обновления импортирует, сбрасывает или перестраивает их в зависимости от параметра свойства сервера upgrade_option . Если при обновлении выбран режим импорта (upgrade_option = 2) или перестроения (upgrade_option = 0), полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — до десяти раз дольше. Обратите внимание, что если для обновления выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option , следует использовать процедуру sp_fulltext_service.
Безопасность
В целях безопасности рекомендуется не подключать или восстанавливать базы данных из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Разрешения
Если восстанавливаемая база данных не существуют, для выполнения инструкции RESTORE у пользователя должны быть разрешения CREATE DATABASE. Если база данных существует, разрешения на выполнение инструкции RESTORE по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator , а также владельцу базы данных (dbo).
Разрешения на выполнение инструкции RESTORE даются ролям, в которых данные о членстве всегда доступны серверу. Так как членство в предопределенной роли базы данных может быть проверено только тогда, когда база данных доступна и не повреждена, что не всегда имеет место при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений RESTORE.
Использование среды SQL Server Management Studio
Восстановление базы данных в новом расположении и при необходимости переименование базы данных
Подключитесь к соответствующему экземпляру ядра СУБД SQL Server, а затем в обозревателе объектов щелкните имя сервера, чтобы развернуть дерево сервера.
Щелкните правой кнопкой мыши Базы данных и выберите пункт Восстановление базы данных. Откроется диалоговое окно Восстановление базы данных .
Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, используйте страницу Общие , раздел Источник . Выберите один из следующих параметров:
База данных
Выберите из раскрывающегося списка базу данных для восстановления. Данный список содержит только базы данных, резервное копирование которых было выполнено в соответствии с журналом резервного копирования msdb .
Замечание
Если резервная копия была получена с другого сервера, на целевом сервере не будет журнала резервного копирования для указанной базы данных. В этом случае щелкните пункт Устройство , чтобы вручную указать файл или устройство для восстановления.
Устройство
Нажмите кнопку "Просмотр" (...), чтобы открыть диалоговое окно Выбор устройств резервного копирования. В окне Тип носителя резервной копии выберите один из перечисленных типов устройств. Чтобы выбрать одно или несколько устройств в окне Носитель резервной копии , нажмите кнопку Добавить.
После добавления нужных устройств в списке Носитель резервной копии нажмите кнопку ОК для возвращения на страницу Общие .
В списке Источник: Устройство: База данных выберите имя базы данных, которую нужно восстановить.
Примечание. Этот список доступен, только если выбрано Устройство . Будут выбраны только те базы данных, резервные копии которых доступны на выбранном устройстве.
В разделе Назначение , в поле База данных автоматически появится имя базы данных для восстановления. Для изменения имени базы данных введите новое имя в окно База данных .
В поле «Восстановление в» оставьте значение по умолчанию как «К последней сделанной резервной копии» или щелкните на «Временная шкала», чтобы открыть диалоговое окно «Временная шкала резервного копирования» и вручную выбрать точку времени для остановки действия восстановления. Дополнительные сведения об указании конкретного момента времени см. в разделе Backup Timeline .
В сетке Резервные наборы данных для восстановления выберите нужные резервные наборы. В этой сетке отображаются резервные копии, доступные в указанном месте. По умолчанию предлагается план восстановления. Чтобы переопределить предложенный план восстановления, можно изменить выбранные элементы в сетке. Резервные копии, зависящие от восстановления более ранних копий, автоматически снимаются при снятии выбора более ранних копий.
Сведения о столбцах в наборах резервных копий для восстановления сетки см. в разделе "Восстановление базы данных (общая страница)".
Чтобы указать новое расположение файлов базы данных, выберите страницу "Файлы " и нажмите кнопку "Переместить все файлы в папку". Предоставьте новое расположение для папки файла данных и папки файла журнала. Дополнительные сведения об этой сетке см. в разделе "Восстановление базы данных (страница файлов)".
На странице Параметры настройте параметры, если в этом есть необходимость. Дополнительные сведения об этих параметрах см. в разделе "Восстановление базы данных (страница параметров)".
Использование Transact-SQL
Восстановление базы данных в новом расположении и при необходимости переименование базы данных
При необходимости определите логическое и физическое имена файлов в резервном наборе, содержащем полную резервную копию базы данных, которую нужно восстановить. Эта инструкция возвращает список файлов базы данных и журнала, содержащихся в резервном наборе данных. Базовый синтаксис:
RESTORE FILELISTONLY FROM <BACKUP_DEVICE> WITH FILE = BACKUP_SET_FILE_NUMBER
В этом случае аргумент номер_файла_резервного_набора указывает позицию резервной копии в наборе носителей. Положение резервного набора можно получить с помощью инструкции RESTORE HEADERONLY . Дополнительные сведения см. в разделе "Указание резервного набора данных" в аргументах RESTORE (Transact-SQL).
Это выражение также поддерживает ряд опций WITH. Дополнительную информацию см. в разделе RESTORE FILELISTONLY (Transact-SQL).
Используйте инструкцию RESTORE DATABASE для восстановления полной резервной копии базы данных. По умолчанию файлы данных и журналов восстанавливаются в исходных местоположениях. Чтобы переместить базу данных, используйте параметр MOVE для перемещения каждого из файлов базы данных и предотвращения конфликтов с существующими файлами.
Базовый синтаксис Transact-SQL для восстановления базы данных в новое расположение и присвоения нового имени:
RESTORE DATABASE new_database_name
FROM backup_device [ ,...n ]
[ С
{
[ RECOVERY | NORECOVERY ]
[ , ] [ FILE ={ backup_set_file_number | @backup_set_file_number } ]
[ , ] ПЕРЕМЕСТИТЬ "logical_file_name_in_backup" В "operating_system_file_name" [ ,... n ]
}
;
Замечание
При подготовке к перемещению базы данных на другой диск необходимо проверить наличие достаточного места и определить потенциальные конфликты с существующими файлами. Это включает использование инструкции RESTORE VERIFYONLY , указывающей те же параметры MOVE, которые планируется использовать в инструкции RESTORE DATABASE.
В следующей таблице аргументы инструкции RESTORE описаны применительно к восстановлению базы данных в новом месте. Дополнительные сведения об этих аргументах см. в разделе RESTORE (Transact-SQL).
новое_имя_базы_данных
Новое имя базы данных.Замечание
При восстановлении базы данных на другом экземпляре сервера можно указать исходное имя базы данных вместо нового.
backup_device [
,
... n ]
Указывает список с разделителями-запятыми от 1 до 64 устройств резервного копирования, используемых для восстановления базы данных из резервной копии. Можно указать как физическое устройство резервного копирования, так и соответствующее логическое устройство, если оно определено. Для указания физического устройства резервного копирования используйте параметр DISK или TAPE.{ DISK | TAPE }
=
имя_физического_устройства_резервного_копированияДополнительные сведения см. в разделе Устройства резервного копирования (SQL Server).
{ RECOVERY | NORECOVERY }
Если в базе данных используется модель полного восстановления, может возникнуть необходимость применить резервные копии журналов транзакций после восстановления базы данных. В этом случае укажите параметр NORECOVERY.В противном случае используйте параметр RECOVERY, который применяется по умолчанию.
FILE = { номер_файла_резервного_набора | @номер_файла_резервного_набора }
Идентифицирует резервный набор данных для восстановления. Например, аргумент номер_файла_резервного_набора , равный 1 , указывает первый резервный набор данных на носителе данных резервных копий, а аргумент номер_файла_резервного_набора , равный 2 , указывает второй резервный набор данных. Значение номер_файла_резервного_набора резервного набора данных можно получить с помощью инструкции RESTORE HEADERONLY .Если этот параметр не указан, по умолчанию используется первый резервный набор на устройстве резервного копирования.
Дополнительные сведения см. в разделе "Указание резервного набора данных" в аргументах RESTORE (Transact-SQL).
ПЕРЕМЕСТИТЬ '
logical_file_name_in_backup
' В 'operating_system_file_name
' [,
... n ]
Показывает, что файл данных или журнала, указанный параметром логическое_имя_файла_в_резервной_копии , следует восстановить из копии в месте, указанном параметром имя_файла_в_операционной_системе. Укажите инструкцию MOVE для каждого логического файла, который надо восстановить из резервного набора данных в новом месте.Вариант Описание логическое_имя_файла_в_резервной_копии Указывает логическое имя файла данных или журнала в резервном наборе данных. Логическое имя файла данных или журнала в резервном наборе данных соответствует его логическому имени в базе данных на момент создания резервного набора данных.
Примечание. Получить список логических файлов из резервного набора данных можно с помощью команды RESTORE FILELISTONLY.имя_файла_в_операционной_системе Задает новое место для файла, указанного параметром логическое_имя_файла_в_резервной_копии. Файл будет восстановлен в этом месте.
Параметр имя_файла_в_операционной_системе может также указать новое имя для восстановленного файла. Это необходимо, если вы создаете копию существующей базы данных на том же экземпляре сервера.n Заполнитель, указывающий, что вы можете добавить дополнительные инструкции MOVE.
Пример (Transact-SQL)
В этом примере создается новая база данных с именем MyAdvWorks
путем восстановления резервной копии примера базы данных AdventureWorks2012, которая включает два файла: AdventureWorks2012_Data и AdventureWorks2012_Log. В этой базе данных используется простая модель восстановления. База данных AdventureWorks2012 уже существует на экземпляре сервера, поэтому файлы в резервной копии должны быть восстановлены в новом расположении. Количество и имена восстанавливаемых файлов базы данных можно определить с помощью инструкции RESTORE FILELISTONLY. Резервная копия базы данных является первым резервным набором данных на устройстве резервного копирования.
Замечание
Примеры резервного копирования и восстановления журнала транзакций, включая восстановление на определенный момент времени, используют базу данных MyAdvWorks_FullRM
, созданную из AdventureWorks2012, как показано в следующем примере MyAdvWorks
. Однако результирующая MyAdvWorks_FullRM
база данных должна быть изменена, чтобы использовать полную модель восстановления с помощью следующей инструкции Transact-SQL: ALTER DATABASE <database_name> SET RECOVERY FULL.
USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2012_Backup is the name of the backup device.
RESTORE FILELISTONLY
FROM AdventureWorks2012_Backup;
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks2012_Backup
WITH RECOVERY,
MOVE 'AdventureWorks2012_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2012_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO
Пример создания полной резервной копии базы данных базы данных AdventureWorks2012 см. в статье "Создание полной резервной копии базы данных (SQL Server)".
Связанные задачи
Восстановите резервную копию базы данных (SQL Server Management Studio)
Восстановление резервной копии журнала транзакций (SQL Server)
См. также
Управление метаданными при создании базы данных в другом экземпляре сервера (SQL Server)
RESTORE (Transact-SQL)
Копирование баз данных путем создания и восстановления резервных копий