Аргументы инструкций RESTORE (Transact-SQL)

Область применения: SQL Server (все поддерживаемые версии)

В этих статьях описаны аргументы, указанные в разделах "Синтаксис" для инструкции RESTORE {DATABASE|LOG} и связанных с ней вспомогательных инструкций: RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY и RESTORE VERIFYONLY. Большинство аргументов поддерживается только вложенными наборами этих шести инструкций. Поддержка каждого аргумента указана в его описании.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

Сведения о синтаксисе см. в следующих статьях:

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

DATABASE

Поддерживается инструкцией:RESTORE

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

Для базы данных, использующей модель полного восстановления или модель восстановления с неполным протоколированием, SQL Server в большинстве случаев требует, чтобы перед восстановлением базы данных была создана резервная копия конца журнала. Восстановление базы данных без создания резервной копии заключительного фрагмента журнала приведет к ошибке, если инструкция RESTORE DATABASE не содержит предложение WITH REPLACE или WITH STOPAT, в котором должно указываться время или транзакция, выполняемая после завершения резервного копирования данных. Дополнительные сведения о резервных копиях заключительного фрагмента журнала см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).

LOG

Поддерживается инструкцией:RESTORE

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

Примечание

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

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

{ database_name | @database_name_var}

Поддерживается инструкцией:RESTORE

База данных, в которую восстанавливается журнал или полная база данных. Если это имя указано как переменная (@database_name_var), оно может быть указано в виде строковой константы (@database_name_var = database_name) или как переменная типа данных строки символов, за исключением типов данных ntext или text.

<file_or_filegroup_or_page> [ ,...n ]

Поддерживается инструкцией:RESTORE

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

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

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

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

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

FILE = { logical_file_name_in_backup| @logical_file_name_in_backup_var}

Указывает имя файла, который необходимо включить в восстановление базы данных.

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

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

Инструкцию FILEGROUP можно использовать в простой модели восстановления только в том случае, если указанная файловая группа доступна только для чтения и данная операция восстановления является частичной (то есть при использовании WITH PARTIAL). Любые невосстановленные файловые группы, доступные для чтения и записи, отмечаются как несуществующие и впоследствии не могут быть восстановлены в результирующей базе данных.

READ_WRITE_FILEGROUPS

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

PAGE = 'file: _page* [ , ...n ] '

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

PAGE
Указывает список из одного или нескольких файлов и страниц.

файл
Идентификатор файла, содержащего определенную страницу для восстановления.

страница
Идентификатор страницы, подлежащей восстановлению в файле.

n
Заполнитель, который указывает, что можно задать несколько страниц.

Максимальное число страниц, которое можно восстановить в один файл в последовательности восстановления, — 1 000. Но если файл содержит большое количество поврежденных страниц, лучше восстанавливать не страницы, а весь файл целиком.

Примечание

Восстановленные страницы невозможно восстановить повторно.

Дополнительные сведения о восстановлении страниц см. в разделе Восстановление страниц (SQL Server).

[ , ...n ]
Заполнитель, который указывает, что можно задать в списке несколько файлов, файловых групп и страниц с разделителями-запятыми. Их число не ограничено.

FROM { <backup_device> [ ,...n ]| <database_snapshot> }

Как правило, определяет устройства резервного копирования, с которых восстанавливаются резервные копии. В другом случае в предложении FROM инструкции RESTORE DATABASE можно указать имя моментального снимка базы данных, к которому возвращается база данных; в этом случае не разрешается применять предложение WITH.

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

<backup_device> [ ,...n ]

Логическое или физическое устройство резервного копирования.

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY и RESTORE VERIFYONLY.

<backup_device>::= Указывает логическое или физическое устройство резервного копирования, используемое для создания резервной копии, а именно:

{ logical_backup_device_name | @logical_backup_device_name_var }
Логическое имя устройства или устройств резервного копирования, созданных процедурой sp_addumpdevice, из которых восстанавливается база данных, должно соответствовать правилам для идентификаторов. Если имя устройства резервного копирования является переменной (@logical_backup_device_name_var), то имя устройства резервного копирования может быть указано в виде строковой константы (@logical_backup_device_name_var = logical_backup_device_name) или как переменная типа данных строки символов, за исключением типов данных ntext или text.

{DISK | TAPE } = { 'physical_backup_device_name' | @physical_backup_device_name_var }
Разрешает сохранение резервных копий с названного диска или ленточного устройства хранения данных. Для дисковых и магнитных устройств необходимо указать фактическое имя устройства (например, полный путь и имя файла): DISK ='Z:\SQLServerBackups\AdventureWorks.bak' или TAPE ='\\\\.\TAPE0'. Если имя устройства является переменной (@physical_backup_device_name_var), то имя устройства может быть указано в виде строковой константы (@physical_backup_device_name_var = 'physical_backup_device_name') или как переменная типа данных строки символов, за исключением типов данных ntext или text.

Укажите тип дискового устройства с помощью сетевого сервера с именем UNC (которое должно содержать имя компьютера). Дополнительные сведения об использовании имен UNC см. в разделе Устройства резервного копирования (SQL Server).

Учетная запись, под которой работает SQL Server, должна обладать доступом READ на удаленном компьютере или сетевом сервере, чтобы выполнять операцию RESTORE.

n
Заполнитель, который указывает, что можно задать в списке до 64 устройств резервного копирования с разделителями-запятыми.

Требует ли последовательность восстановления столько же устройств резервного копирования, сколько было использовано для создания набора носителей, которым принадлежат резервные копии, зависит от того, происходит восстановление в режиме «вне сети» или режиме «в сети», следующим образом:

  • Восстановление в сети позволяет использовать меньше устройств, чем было задействовано при создании резервных копий.

  • При восстановлении в сети обязательно наличие всех устройств резервного копирования. Попытка выполнить восстановление с меньшим числом устройств не будет успешно завершена.

Например, рассмотрим случай резервного копирования базы данных на четыре накопителя на магнитной ленте, подключенных к серверу. Для восстановления в сети необходимо иметь четыре накопителя, подключенных к серверу; восстановление вне сети позволяет восстановить резервную копию, если в компьютере менее четырех накопителей.

Примечание

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

<database_snapshot>::=

Поддерживается инструкцией:RESTORE DATABASE

DATABASE_SNAPSHOT =database_snapshot_name
Возвращает базу данных к моментальному снимку базы данных, определяемому именем_моментального_снимка_базы_данных. Аргумент DATABASE_SNAPSHOT доступен только для полного восстановления базы данных. При выполнении операции возврата к предшествующему состоянию моментальный снимок базы данных занимает место полной резервной копии базы данных.

Для операции возврата к предшествующему состоянию необходимо, чтобы указанный моментальный снимок базы данных был единственным для базы данных. В ходе операции возврата моментальный снимок базы данных и целевая база данных отмечаются как In restore. Дополнительные сведения см. в подразделе "Замечания" раздела Восстановление базы данных.

Параметры инструкции WITH

Указывает параметры, используемые для операции восстановления предшествующего состояния. Сводку инструкций, в которых используется каждый параметр, см. в разделе "Сводные данные о совместимости с параметрами WITH" далее в этой статье.

Примечание

Параметры WITH указаны в том же порядке, что и в подразделе "Синтаксис" раздела RESTORE {DATABASE|LOG}.

PARTIAL

Поддерживается инструкцией:RESTORE DATABASE

Указывает операцию частичного восстановления, которая восстанавливает первичную файловую группу и любые указанные вторичные файловые группы. Параметр PARTIAL неявно выбирает первичную файловую группу; указывать FILEGROUP = 'PRIMARY' не требуется. Чтобы восстановить вторичную файловую группу, необходимо явно задать ее с помощью параметра FILE или FILEGROUP.

Не разрешается применять параметр PARTIAL в инструкциях RESTORE LOG.

Параметр PARTIAL запускает начальный этап поэтапного восстановления, которое позволяет восстановить оставшиеся файловые группы позднее. Дополнительные сведения см. в разделе Поэтапное восстановление (SQL Server).

[ RECOVERY | NORECOVERY | STANDBY ]

Поддерживается инструкцией:RESTORE

RECOVERY
Настраивает операцию восстановления на откат любых незавершенных транзакций. После процедуры восстановления база данных готова к использованию. Если не указан ни один из параметров NORECOVERY, RECOVERY и STANDBY, RECOVERY является параметром по умолчанию.

Если запланированы последующие операции RESTORE (RESTORE LOG или RESTORE DATABASE из разностного архива), то вместо них следует указать параметры NORECOVERY или STANDBY.

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

Примечание

Если предложение FROM опущено, то с предложением WITH должен быть указан параметр NORECOVERY, RECOVERY или STANDBY.

NORECOVERY

Настраивает операцию восстановления на отмену отката любых незавершенных транзакций. Если впоследствии должен применяться другой журнал транзакций, то следует указать параметр NORECOVERY или STANDBY. Если не указан ни один из параметров NORECOVERY, RECOVERY и STANDBY, RECOVERY является параметром по умолчанию. В ходе восстановления вне сети с использованием параметра NORECOVERY база данных непригодна для использования.

Для восстановления резервной копии базы данных и одного или нескольких журналов транзакций или в других случаях, когда необходимо применить несколько инструкций RESTORE (например, при восстановлении полной резервной копии базы данных с последующим разностным восстановлением базы), необходимо указать параметр WITH NORECOVERY для всех инструкций RESTORE, кроме последней. Лучший способ — использовать параметр WITH NORECOVERY во ВСЕХ инструкциях многоэтапной последовательности восстановления до тех пор, пока не будет достигнута желаемая точка восстановления, а затем использовать отдельную инструкцию RESTORE WITH RECOVERY только для восстановления.

При использовании с операцией восстановления файла или файловой группы параметр NORECOVERY принудительно оставляет базу данных в состоянии восстановления после операции восстановления. Это полезно в следующих ситуациях:

  • Выполняется скрипт восстановления, и журнал всегда применяется.

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

В некоторых случаях RESTORE WITH NORECOVERY переводит набор данных наката достаточно далеко вперед, чтобы он был совместим с базой данных. В таких случаях откат не производится и данные остаются вне сети, как и предполагается при использовании этого параметра. Однако компонент Компонент Database Engine выдает информационное сообщение о том, что теперь набор данных наката можно восстановить с помощью параметра RECOVERY.

STANDBY =standby_file_name

Указывает резервный файл, с помощью которого можно отменить результаты восстановления. Параметр STANDBY разрешается применять для восстановления вне сети (в том числе частичного восстановления). Параметр не разрешается использовать при восстановлении в сети. При попытке указать параметр STANDBY для восстановления в сети операция восстановления заканчивается неудачей. Инструкцию STANDBY также не разрешается применять, если необходимо обновление базы данных.

Резервный файл используется для сохранения прообраза страниц, измененных во время прохода отмены инструкции RESTORE WITH STANDBY. Благодаря резервному файлу базу данных можно сделать доступной только для чтения между транзакциями и использовать с сервером «горячего» резервирования или в особых ситуациях восстановления, когда полезно проверить базу данных между операциями восстановления журналов транзакций. После операции RESTORE WITH STANDBY файл отката автоматически удаляется следующей операцией RESTORE. Если резервный файл был удален вручную перед следующей операцией RESTORE, то необходимо повторно восстановить всю базу данных. Пока база данных находится в состоянии STANDBY, к резервному файлу следует относиться с такой же осторожностью, как к любому другому файлу базы данных. В отличие от других файлов базы данных этот файл открывается только компонентом Компонент Database Engine во время активных операций восстановления.

Аргумент имя_резервного_файла указывает резервный файл, местонахождение которого хранится в журнале базы данных. Если файл с таким именем существует, то он перезаписывается; в противном случае компонент Компонент Database Engine создает этот файл.

Требования к размерам конкретного резервного файла зависят от числа действий отката, вызванных незавершенными транзакциями в ходе операции восстановления.

Важно!

Если на диске, содержащем резервный файл с указанным именем, отсутствует свободное место, то операция восстановления останавливается.

Сравнение параметров RECOVERY и NORECOVERY приведено в подразделе "Замечания" раздела RESTORE.

LOADHISTORY

Поддерживается инструкцией:RESTORE VERIFYONLY

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

Обратите внимание, что если в таблицах журналов msdb уже существуют резервные копии, то при использовании LOADHISTORY в них добавится та же информация с новым идентификатором backup_set_id. Кроме того, если LOADHISTORY используется для повторного создания журналов резервного копирования в msdb (на другом сервере или после удаления данных с исходного сервера), рекомендуется выполнять команды восстановления резервных копий в том порядке, в котором они создавались. Таким образом цепочка LSN останется в исходном состоянии, и мастер восстановления SSMS сможет правильно считать журнал резервного копирования, чтобы создать верную последовательность восстановления. Использование LOADHISTORY с журналом резервного копирования, повторно создаваемым не по порядку, может привести к ошибке при попытке восстановления ("Не удалось создать план восстановления из-за прерывания цепочки LSN. (Microsoft.SqlServer.SmoExtended)").

<general_WITH_options> [ ,...n ]

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

Параметры операции восстановления

Эти параметры влияют на поведение операции восстановления.

MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ...n ]

Поддерживается инструкциями:RESTORE и RESTORE VERIFYONLY

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

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

Примечание

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

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

При использовании с инструкцией RESTORE LOG параметр MOVE можно использовать для переноса файлов, добавленных за интервал времени, охваченный восстанавливаемым журналом. Например, если резервная копия журналов содержит операцию добавления файла для файла file23, то этот файл можно перенести с использованием параметра MOVE инструкции RESTORE LOG.

При использовании с резервной копией моментального снимка SQL Server параметр MOVE можно использовать только для перемещения файлов в BLOB-объекты Azure в той же учетной записи хранения, в которой размещается исходный BLOB-объект. Параметр MOVE не может использоваться для восстановления моментального снимка резервной копии в локальный файл или в другую учетную запись хранения.

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

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

CREDENTIAL

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

Область применения: SQL Server 2012 (11.x) SP1 CU2 и выше

Используется только при восстановлении резервной копии с помощью хранилища BLOB-объектов Azure.

Примечание

Начиная с версии SQL Server 2012 (11.x) с пакетом обновления SP1 и накопительным обновлением 2 до версии SQL Server 2016 (13.x) восстановление с URL-адреса можно выполнять только с одного устройства. Чтобы выполнить восстановление с нескольких устройств при помощи URL-адреса, необходимо использовать версию SQL Server 2016 (13.x); или выше и маркеры подписанных URL-адресов (SAS). Дополнительные сведения см. в разделах Включение управляемого резервного копирования SQL Server в Microsoft Azure и Упрощение создания учетных данных SQL с помощью маркеров подписанных URL-адресов (SAS) в службе хранилища Azure с PowerShell.

REPLACE

Поддерживается инструкцией:RESTORE

Указывает, что SQL Server должен создать указанную базу данных и связанные с ней файлы, даже если уже существует другая база данных с таким именем. В этом случае существующая база данных будет удалена. Если параметр REPLACE не указан, выполняется проверка безопасности. Это предотвращает перезапись другой базы данных по ошибке. Проверка безопасности гарантирует, что инструкция RESTORE DATABASE не восстанавливает базу данных на текущем сервере, если выполнены два следующих условия:

  • база данных, указанная в инструкции RESTORE, уже существует на текущем сервере;

  • имя базы данных отличается от имени базы данных, записанного в резервный набор данных.

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

Параметр REPLACE также отменяет требование создать резервную копию конца журнала перед восстановлением базы данных.

Дополнительные сведения об использовании параметра REPLACE см. в разделе RESTORE (Transact-SQL).

RESTART

Поддерживается инструкцией:RESTORE

Указывает, что SQL Server должен перезапустить прерванную операцию восстановления. Инструкция RESTART перезапускает операцию восстановления с точки прерывания.

RESTRICTED_USER

Поддерживается инструкцией:RESTORE.

Ограничивает доступ к вновь созданной базе данных для членов ролей db_owner, dbcreator и sysadmin. Параметр RESTRICTED_USER заменяет параметр DBO_ONLY. Параметр DBO_ONLY в SQL Server 2008 не поддерживается.

Следует использовать с параметром RECOVERY.

Параметры резервного набора данных

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

FILE ={ backup_set_file_number | @backup_set_file_number }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY.

Идентифицирует резервный набор данных для восстановления. Например, аргумент номер_файла_резервного_набора , равный 1 , указывает первый резервный набор данных на носителе данных резервных копий, а аргумент номер_файла_резервного_набора , равный 2 , указывает второй резервный набор данных. Значение номер_файла_резервного_набора резервного набора данных можно получить с помощью инструкции RESTORE HEADERONLY .

Если не указано иное, то значение по умолчанию — 1, за исключением инструкции RESTORE HEADERONLY, которая обрабатывает все резервные наборы в наборе носителей. Дополнительные сведения см. в разделе Указание резервного набора данных.

Важно!

Этот параметр FILE не связан с параметром FILE, указывающим файл базы данных, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

PASSWORD = { password | @password_variable }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY.

Предоставляет пароль резервного набора данных. Пароль набора резервных копий является символьной строкой.

Примечание

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

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

Важно!

Этот пароль обеспечивает слабую защиту для набора носителей. Дополнительные сведения см. в подразделе «Разрешения» для соответствующих инструкций.

[ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { <database_name> | @database_name_variable } ]

Впервые представлено в SQL Server 2022 (16.x).

Требуется для восстановления из резервной копии моментального снимка. BACKUP SERVERBACKUP GROUP... или См. статью Создание резервной копии моментальных снимков Transact-SQL.

METADATA_ONLY является синонимом SNAPSHOT. Интерфейс виртуального устройства (VDI) использует SNAPSHOT. Дополнительные сведения о VDI см. в справочнике по интерфейсу виртуальных устройств (VDI).

Параметры набора носителей

Эти параметры влияют на весь набор носителей.

MEDIANAME = { media_name | @media_name_variable}

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

Задает имя данного носителя. Если имя носителя указано, оно должно соответствовать имени резервных томов; в противном случае операция восстановления прекращается. Если имя носителя в инструкции RESTORE не указано, то поиск совпадающего имени носителя на резервных томах не выполняется.

Важно!

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

MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

Предоставляет пароль набора носителей. Пароль набора носителей является символьной строкой.

Примечание

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

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

Важно!

Этот пароль обеспечивает слабую защиту для набора носителей. Дополнительные сведения см. в разделе «Разрешения» для соответствующей инструкции.

BLOCKSIZE = { blocksize | @blocksize_variable }

Поддерживается инструкцией:RESTORE

Указывает размер физического блока в байтах. Поддерживаются размеры 512, 1024, 2048, 4096, 8192, 16 384, 32 768 и 65 536 байт (64 КБ). Значение по умолчанию равно 65 536 для ленточных устройств и 512 для других устройств. Обычно в этом параметре нет необходимости, так как инструкция RESTORE автоматически выбирает размер блока, соответствующий устройству. Явная установка размера блока переопределяет автоматический выбор размера блока.

При восстановлении из копии с носителя CD-ROM укажите значение BLOCKSIZE=2048.

Примечание

Этот параметр обычно влияет на производительность только при чтении с ленточных устройств.

Параметры передачи данных

Эти параметры позволяют оптимизировать передачу данных с устройства резервного копирования.

BUFFERCOUNT = { buffercount | @buffercount_variable }

Поддерживается инструкцией:RESTORE

Указывает общее число буферов ввода-вывода, которые будут использоваться для операции восстановления. Можно указать любое целое положительное значение, однако большое число буферов может вызвать ошибку нехватки памяти из-за чрезмерного виртуального адресного пространства в процессе Sqlservr.exe.

Общее используемое буферами пространство определяется по следующей формуле: число_буферов****максимальный_размер_передаваемых_данных.

MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

Поддерживается инструкцией:RESTORE

Указывает наибольший объем пакета данных в байтах для обмена между носителем резервного набора и SQL Server. Поддерживаются значения, кратные 65 536 байтам (64 КБ), вплоть до 4 194 304 байт (4 МБ).

Примечание

Если для базы данных настроена файловая группа FILESTREAM или база данных включает файловые группы OLTP в памяти, то значение MAXTRANSFERSIZE в момент восстановления должно быть не меньше этого значения, указанного при создании резервной копии.

Параметры управления ошибками

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

{ CHECKSUM | NO_CHECKSUM }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

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

CHECKSUM
Указывает, что необходимо проверить контрольные суммы резервных копий, и если в резервной копии нет контрольной суммы, приводит к отказу операции восстановления с выдачей сообщения об отсутствии контрольной суммы.

Примечание

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

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

Дополнительные сведения об использовании контрольных сумм резервных копий см. в разделе Возможные ошибки носителей во время резервного копирования и восстановления (SQL Server).

NO_CHECKSUM
Явно отменяет проверку контрольных сумм операцией восстановления.

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

STOP_ON_ERROR
Указывает, что операция восстановления прекращается после обнаружения первой ошибки. Это поведение по умолчанию для инструкций RESTORE, за исключением инструкции RESTORE VERIFYONLY, для которой по умолчанию действует режим CONTINUE_AFTER_ERROR.

CONTINUE_AFTER_ERROR
Указывает на то, что после возникновении ошибки операция восстановления должна продолжаться.

Если в резервной копии есть поврежденные страницы, то лучше всего повторить операцию восстановления с использованием альтернативной резервной копии, не содержащей ошибок (например, используя резервную копию, созданную до повреждения страниц). В качестве последнего средства можно попытаться восстановить данные из поврежденной резервной копии с помощью параметра CONTINUE_AFTER_ERROR восстанавливающей инструкции.

Параметры FILESTREAM

FILESTREAM ( DIRECTORY_NAME =имя_каталога )

Поддерживается инструкциями:RESTORE и RESTORE VERIFYONLY

Область применения: SQL Server 2012 (11.x) и более поздних версий

Имя каталога, совместимое с Windows. Это имя должно быть уникальным среди всех имен каталогов уровня базы данных FILESTREAM в экземпляре SQL Server. Проверка уникальности выполняется с учетом регистра, независимо от параметров сортировки SQL Server.

Возможности мониторинга

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

STATS [ =percentage ]

Поддерживается инструкциями:RESTORE и RESTORE VERIFYONLY

Отображает сообщение каждый раз, когда завершается очередной процент задания, и используется для отслеживания хода выполнения. Если процент не указан, SQL Server выводит сообщение после завершения каждых 10 процентов (приблизительно).

Параметр STATS сообщает о готовности в процентах по отношению к порогу сообщения о следующем интервале. Это происходит приблизительно при указанном процентном значении; например, если параметру STATS присвоено значение 10, компонент Компонент Database Engine выдает сообщения приблизительно с таким интервалом; в частности, вместо точного значения 40% может быть показано значение 43%. Это не является проблемой для больших резервных наборов данных, поскольку показатель готовности в процентах перемещается очень медленно между завершенными вызовами ввода-вывода.

Параметры ленты

Эти параметры используются только для ленточных устройств. При использовании другого устройства они не обрабатываются.

{ REWIND | NOREWIND }

Эти параметры используются только для ленточных устройств. При использовании другого устройства они пропускаются.

REWIND
Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY.

Указывает, что SQL Server должен освободить и перемотать ленту. REWIND — значение по умолчанию.

NOREWIND
Поддерживается инструкциями:RESTORE и RESTORE VERIFYONLY

Использование NOREWIND в любой другой инструкции восстановления приводит к ошибке.

Указывает, что SQL Server сохранит ленту открытой после операции резервного копирования. Этим параметром можно пользоваться для увеличения производительности при выполнении нескольких операций резервного копирования на ленту.

Параметр NOREWIND подразумевает параметр NOUNLOAD, и эти параметры несовместимы в одной инструкции RESTORE.

Примечание

При использовании параметра NOREWIND экземпляр SQL Server продолжает владеть накопителем на магнитной ленте до тех пор, пока инструкция BACKUP или RESTORE, работающая в этом же процессе, не использует параметр REWIND или UNLOAD, или пока не закончит работу экземпляр сервера. Поскольку лента остается открытой, другие процессы не могут получить доступа к ленте. Дополнительные сведения об отображении списка открытых лент и закрытии открытой ленты см. в разделе Устройства резервного копирования (SQL Server).

{ UNLOAD | NOUNLOAD }

Поддерживается инструкциями:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY и RESTORE VERIFYONLY.

Эти параметры используются только для ленточных устройств. При использовании другого устройства они пропускаются.

Примечание

Параметр UNLOAD/NOUNLOAD является настройкой сеанса, он сохраняется в течение работы сеанса или пока не будет сброшен при указании другого значения.

UNLOAD
Указывает, что лента автоматически перематывается и выгружается по завершении операции резервного копирования. Параметр UNLOAD применяется в начале сеанса по умолчанию.

NOUNLOAD
Указывает, что после операции RESTORE лента останется загруженной в ленточный накопитель.

<replication_WITH_option>

Этот параметр имеет значение, только если во время создания резервной копии проводилась репликация базы данных.

KEEP_REPLICATION
Поддерживается инструкцией:RESTORE

Аргумент KEEP_REPLICATION следует использовать при настройке репликации с доставкой журналов. Это предотвращает удаление параметров репликации, если резервная копия базы данных или резервная копия журналов восстанавливается на сервере «горячего» резервирования и база данных воссоздается. Не разрешается указывать этот параметр при восстановлении резервной копии с параметром NORECOVERY. Для обеспечения функций репликации после восстановления:

  • Базы данных msdb и master на сервере "горячего" резервирования должны быть синхронизированы с базами данных msdb и master на сервере-источнике.

  • Сервер «горячего» резервирования должен быть переименован, и ему должно быть присвоено такое же имя, как у сервера-источника.

<change_data_capture_WITH_option>

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

KEEP_CDC

Поддерживается инструкцией:RESTORE

Ключевое слово KEEP_CDC следует использовать для предотвращения удаления настроек системы отслеживания измененных данных при восстановлении резервной копии базы данных или журнала на другом сервере и восстановлении базы данных. Не разрешается указывать этот параметр при восстановлении резервной копии с параметром NORECOVERY.

Восстановление базы данных с ключевым словом KEEP_CDC не приводит к созданию заданий по системе отслеживания измененных данных. Чтобы извлечь изменения из журнала после восстановления базы данных, заново создайте задание отслеживания изменений и задание очистки для восстановленной базы данных. Дополнительные сведения см. в разделе sys.sp_cdc_add_job (Transact-SQL).

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

<service_broker_WITH_options>

Включает или выключает доставку сообщений компонентом Компонент Service Broker либо задает новый идентификатор компонента Компонент Service Broker. Этот параметр имеет значение, только если при создании резервной копии в базе данных был включен компонент Компонент Service Broker.

{ ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER }

Поддерживается инструкцией:RESTORE DATABASE

ENABLE_BROKER
Указывает, что доставка сообщений компонента Компонент Service Broker включена по завершении восстановления, поэтому сообщения можно отправлять немедленно. По умолчанию при восстановлении доставка сообщений компонента Компонент Service Broker отключена. Существующий идентификатор компонента Service Broker сохраняется в базе данных.

ERROR_BROKER_CONVERSATIONS
Завершает все диалоги, находящиеся в состоянии ошибки, которые были присоединены к базе данных или восстановлены. Это дает возможность приложениям выполнять регулярную очистку существующих сеансов связи. Доставка сообщений компонента Service Broker отключается до завершения данной операции, затем снова включается. Существующий идентификатор компонента Service Broker сохраняется в базе данных.

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

<point_in_time_WITH_options>

Поддерживается инструкцией:RESTORE {DATABASE|LOG} только для модели полного восстановления и для модели восстановления с неполным протоколированием.

Можно восстановить базу данных на определенный момент времени или к определенной транзакции, указав целевую точку восстановления в предложении STOPAT, STOPATMARK или STOPBEFOREMARK. Восстановление на определенный момент времени или к определенной транзакции всегда выполняется из резервной копии журнала. В каждой инструкции RESTORE LOG из последовательности восстановления необходимо указывать целевое время или целевую транзакцию в одинаковых предложениях STOPAT, STOPATMARK или STOPBEFOREMARK.

Для восстановления на определенный момент времени сначала необходимо восстановить полную резервную копию базы данных, конечная точка которой располагается раньше, чем целевая точка восстановления. Чтобы упростить определение резервной копии базы данных, которую следует восстановить, можно дополнительно указать предложение WITH STOPAT, STOPATMARK или STOPBEFOREMARK в инструкции RESTORE DATABASE, чтобы вызвать ошибку, если резервная копия данных окажется слишком поздней для заданного целевого времени. Однако полная резервная копия базы данных всегда восстанавливается, даже если она содержит целевое время.

Примечание

Параметры WITH для заданного момента времени для инструкций RESTORE_DATABASE и RESTORE_LOG одинаковы, но аргумент имя_метки поддерживается только инструкцией RESTORE LOG.

{ STOPAT | STOPATMARK | STOPBEFOREMARK }

STOPAT = { 'datetime' | @_datetime_var* }
Указывает, что база данных будет восстановлена в состояние, в котором она находилась в момент, соответствующий дате и времени, которые указаны в параметре datetime или @datetime_var. Дополнительные сведения об указании даты и времени см. в разделе Типы и функции данных и даты и времени (Transact-SQL).

Если для параметра STOPAT использована переменная, то она должна иметь тип данных varchar, char, smalldatetime или datetime. Только записи журнала транзакций, сделанные до указанных даты и времени, применяются к базе данных.

Примечание

Если указанное время STOPAT назначено после создания последней резервной копии журналов, база данных остается в невосстановленном состоянии, как если бы инструкция RESTORE LOG работала с параметром NORECOVERY.

Дополнительные сведения см. в разделе Восстановление базы данных SQL Server на определенный момент времени (модель полного восстановления).

STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER 'datetime' ]
Задает восстановление до указанной точки восстановления. Заданная транзакция включается в восстановление, но фиксируется только в том случае, если она была изначально зафиксирована в ходе формирования транзакции.

Инструкции RESTORE DATABASE и RESTORE LOG поддерживают параметр номер_lsn. Этот параметр определяет регистрационный номер транзакции в журнале.

Параметр имя_метки поддерживается только инструкцией RESTORE LOG. Этот параметр идентифицирует метку транзакции в резервной копии журнала.

Если в инструкции RESTORE LOG опущен параметр AFTER дата_и_время, то восстановление останавливается на первой метке с указанным именем. Если указан параметр AFTER дата_и_время, то восстановление останавливается на первой метке с указанным именем непосредственно перед или после указанных даты_и_времени.

Примечание

Если указанная отметка (номер LSN) или время назначены после создания последней резервной копии журналов, база данных остается в невосстановленном состоянии, как если бы инструкция RESTORE LOG работала с параметром NORECOVERY.

Дополнительные сведения см. в разделах Использование помеченных транзакций для согласованного восстановления связанных баз данных (модель полного восстановления) и Восстановление до номера LSN (SQL Server).

STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER 'datetime' ]
Задает восстановление до указанной точки восстановления. Заданная транзакция не включается в восстановление; после применения параметра WITH RECOVERY производится ее откат.

Инструкции RESTORE DATABASE и RESTORE LOG поддерживают параметр номер_lsn. Этот параметр определяет регистрационный номер транзакции в журнале.

Параметр имя_метки поддерживается только инструкцией RESTORE LOG. Этот параметр идентифицирует метку транзакции в резервной копии журнала.

Если в инструкции RESTORE LOG опущен параметр AFTER дата_и_время, то восстановление останавливается на первой метке с указанным именем. Если указан параметр AFTER дата_и_время, то восстановление останавливается на первой метке с указанным именем непосредственно перед или после указанных даты_и_времени.

Важно!

Если последовательность частичного восстановления исключает любые файловые группы FILESTREAM, восстановление на момент времени не поддерживается. Можно принудительно продолжить последовательность восстановления. Тем не менее файловые группы файлового потока, не вошедшие в инструкцию RESTORE, восстановить невозможно. Для принудительного продолжения восстановления на момент времени укажите параметр CONTINUE_AFTER_ERROR вместе с параметром STOPAT, STOPATMARK или STOPBEFOREMARK. Если указать параметр CONTINUE_AFTER_ERROR, выполняется последовательность частичного восстановления, а файловая группа FILESTREAM становится невосстановимой.

Наборы результатов

Сведения о результирующих наборах см. в следующих статьях:

Remarks

Дополнительные замечания см. в следующих статьях:

Указание резервного набора данных

Резервный набор данных содержит резервную копию, полученную в результате отдельной успешной операции резервного копирования. Инструкции RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY выполняются над отдельным резервным набором данных в рамках набора носителей на указанном устройстве или устройствах резервного копирования. Указанная резервная копия должна быть расположена на наборе носителей. Значение номер_файла_резервного_набора резервного набора данных можно получить с помощью инструкции RESTORE HEADERONLY .

Параметр для указания резервного набора данных с целью восстановления имеет вид:

FILE ={ backup_set_file_number | @backup_set_file_number }

Аргумент номер_файла_резервного_набора указывает позицию резервной копии в наборе носителей. Аргумент номер_файла_резервного_набора, равный 1 (FILE = 1), указывает первый резервный набор данных на носителе данных резервных копий, аргумент номер_файла_резервного_набора, равный 2 (FILE = 2), указывает второй резервный набор данных и т. д.

Поведение этого параметра зависит от инструкции, как описано в следующей таблице:

. Поведение параметра резервного набора данных FILE
RESTORE По умолчанию номер файла резервного набора данных равен 1. В инструкции RESTORE разрешено использовать только один параметр резервного набора данных FILE. Важно указывать резервные наборы данных по порядку.
RESTORE FILELISTONLY По умолчанию номер файла резервного набора данных равен 1.
инструкция RESTORE HEADERONLY По умолчанию обрабатываются все резервные наборы данных в наборе носителей. Результирующий набор инструкции RESTORE HEADERONLY возвращает сведения о каждом резервном наборе данных, включая их положение в наборе носителей. Чтобы получить сведения о конкретном резервном наборе данных, укажите его положение в качестве значения аргумента номер_файла_резервного_набора_данных в параметре FILE.

Примечание. Для ленточных носителей инструкция RESTORE HEADER обрабатывает только резервные наборы данных на загруженной ленте.
RESTORE VERIFYONLY Значение номера_файла_резервного_набора_данных по умолчанию — 1.

Примечание

Параметр FILE, указывающий резервный набор данных, не связан с параметром FILE, указывающим файл базы данных, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

Сводные данные о совместимости с параметрами инструкции WITH

Следующие параметры инструкции WITH совместимы только с инструкцией RESTORE: BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | NORECOVERY | STANDBY }, REPLACE, RESTART, RESTRICTED_USER и { STOPAT | STOPATMARK | STOPBEFOREMARK }

Примечание

Параметр PARTIAL поддерживается только инструкцией RESTORE DATABASE.

В следующей таблице перечислены параметры инструкции WITH, которые используются одной или несколькими инструкциями, и указано, какие инструкции совместимы с каждым параметром. Галочка (√) показывает, что параметр поддерживается; тире (—) показывает, что параметр не поддерживается.

Параметр инструкции WITH RESTORE RESTORE FILELISTONLY инструкция RESTORE HEADERONLY RESTORE LABELONLY RESTORE REWINDONLY RESTORE VERIFYONLY
{ CHECKSUM

| NO_CHECKSUM }
-
{ CONTINUE_AFTER_ERROR

| STOP_ON_ERROR }
-
FILE1 - -
LOADHISTORY - - - - -
MEDIANAME -
MEDIAPASSWORD -
MOVE - - - -
PASSWORD - -
{ REWIND | NOREWIND } Только REWIND Только REWIND Только REWIND -
STATS - - - -
{ UNLOAD | NOUNLOAD }

1 FILE =backup_set_file_number, отличный от {FILE | FILEGROUP}.

Разрешения

Сведения о разрешениях см. в следующих статьях:

Примеры

Примеры см. в следующих статьях:

Дальнейшие действия