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


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

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

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

Синтаксис

Синтаксис см. в следующих разделах:

Аргументы

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

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

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

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

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

    ПримечаниеПримечание

    Как правило, последний восстановленный журнал представляет собой резервную копию заключительного фрагмента журнала. Резервная копия tail-log backup является резервной копией заключительного фрагмента журнала, сделанной непосредственно после восстановления базы данных, обычно после отказа базы данных. Создание резервной копии заключительного фрагмента журнала поврежденной базы данных предотвращает потерю работы благодаря сохранению журнала, для которого еще не была создана резервная копия (заключительный фрагмент журнала). Дополнительные сведения см. в разделе Резервные копии заключительного фрагмента журнала (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
        Указывает список из одного или нескольких файлов и страниц.

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

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

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

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

      ПримечаниеПримечание

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

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

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

  • FROM { <backup_device> [ ,...n ]| <снимок_базы_данных> }
    Как правило, определяет устройства резервного копирования, с которых восстанавливаются резервные копии. В другом случае в предложении 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 = 'physcial\_backup\_device\_name') или переменную типа символьной строки, за исключением типов данных ntext и text.
            
            Используя сетевой сервер с именем UNC (которое должно содержать имя компьютера), укажите тип дискового устройства. Дополнительные сведения об использовании имен UNC см. в разделе [Устройства резервного копирования (SQL Server)](ms179313\(v=sql.110\).md).
            
            Учетная запись, под которой работает SQL Server, должна обладать доступом READ на удаленном компьютере или сетевом сервере, чтобы выполнять операцию RESTORE.
    
      - n  
        Заполнитель, который указывает, что можно задать в списке до 64 устройств резервного копирования с разделителями-запятыми.
        
        Требует ли последовательность восстановления столько же устройств резервного копирования, сколько было использовано для создания набора носителей, которым принадлежат резервные копии, зависит от того, происходит восстановление в режиме «вне сети» или режиме «в сети», следующим образом:
        
          - Восстановление вне сети позволяет использовать меньше устройств, чем было задействовано для создания резервных копий.
        
          - Восстановление в сети требует наличия всех устройств резервного копирования архива. Попытка произвести восстановление с меньшим числом устройств не удается.
        
        Например, рассмотрим случай резервного копирования базы данных на четыре накопителя на магнитной ленте, подключенных к серверу. Для восстановления в сети необходимо иметь четыре накопителя, подключенных к серверу; восстановление вне сети позволяет восстановить резервную копию, если в компьютере менее четырех накопителей.
    
    <table>
    <colgroup>
    <col style="width: 100%" />
    </colgroup>
    <thead>
    <tr class="header">
    <th><img src="images/ms143504.alert_note(SQL.110).gif" title="Примечание" alt="Примечание" /><strong>Примечание</strong></th>
    </tr>
    </thead>
    <tbody>
    <tr class="odd">
    <td><p>Проводя восстановление из копии с зеркального набора носителей, можно указать по одному зеркалу для каждого семейства носителей. Но в случае ошибок наличие других зеркальных носителей позволяет быстро устранить некоторые проблемы восстановления. Можно заменить поврежденный том носителя соответствующим томом с другого зеркала. Учтите, что при восстановлении вне сети можно использовать меньше устройств, чем семейств носителей, но каждое семейство обрабатывается только один раз.</p></td>
    </tr>
    </tbody>
    </table>

  - \<database\_snapshot\>::=  

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

      - DATABASE\_SNAPSHOT **=**database\_snapshot\_name  
        Возвращает базу данных к моментальному снимку базы данных, указанному database\_snapshot\_name. Аргумент DATABASE\_SNAPSHOT доступен только для полного восстановления базы данных. При выполнении операции возврата к предшествующему состоянию моментальный снимок базы данных занимает место полной резервной копии базы данных.
        
        Для операции возврата к предшествующему состоянию необходимо, чтобы указанный моментальный снимок базы данных был единственным для базы данных. В ходе операции возврата моментальный снимок базы данных и целевая база данных отмечаются как In restore. Дополнительные сведения см. в подразделе «Примечания» раздела [Восстановление базы данных](ms186858\(v=sql.110\).md).

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

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

ПримечаниеПримечание

Параметры WITH здесь организованы в порядке, описанном в подразделе «Синтаксис» раздела RESTORE {DATABASE|LOG}.

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

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

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

    Начиная с версии SQL Server 2005, параметр 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 во время активных операций восстановления.

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

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

      Важное примечаниеВажно!

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

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

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

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

<general_WITH_options> [ ,...n ]

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

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

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

  • MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ...n ]
    Поддерживается инструкциями RESTORE и RESTORE VERIFYONLY

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

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

    ПримечаниеПримечание

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

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

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

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

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

  • 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.

    Идентифицирует резервный набор данных для восстановления. Например, аргумент backup_set_file_number, равный 1, указывает первый резервный набор данных на носителе данных резервных копий, а аргумент backup_set_file_number, равный 2, указывает второй резервный набор данных. Значение backup_set_file_number резервного набора данных можно получить с помощью инструкции 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 этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

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

    Важное примечаниеВажно!

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

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

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

  • 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, 1 024, 2 048, 4 096, 8 192, 16 384, 32 768 и 65 536 байт (64 КБ). Значение по умолчанию равно 65536 для ленточных устройств и 512 для других устройств. Обычно в этом параметре нет необходимости, так как инструкция RESTORE автоматически выбирает размер блока, соответствующий устройству. Явная установка размера блока отменяет автоматический выбор размера блока.

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

    ПримечаниеПримечание

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

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

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

  • BUFFERCOUNT = { buffercount | **@**buffercount_variable }
    Поддерживается инструкцией RESTORE

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

    Общее используемое буферами пространство определяется по следующей формуле: buffercount * maxtransfersize.

  • MAXTRANSFERSIZE = { maxtransfersize | **@**maxtransfersize_variable }
    Поддерживается инструкцией RESTORE

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

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

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

  • { 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 =directory_name )
    Поддерживается инструкциями RESTORE и RESTORE VERIFYONLY

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

Параметры наблюдения

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

  • STATS [ **=**percentage ]
    Поддерживается инструкциями RESTORE и RESTORE VERIFYONLY

    Отображает сообщение каждый раз, когда завершается очередной процент задания, и используется для отслеживания хода выполнения. Если аргумент percentage не указан, 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 поддерживает аргумент mark_name.

  • { 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_number. Этот параметр определяет регистрационный номер транзакции в журнале.

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

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

      ПримечаниеПримечание

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

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

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

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

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

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

    Важное примечаниеВажно!

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

Результирующие наборы

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

Замечания

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

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

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

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

FILE ={ backup_set_file_number | **@**backup_set_file_number }

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

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

Инструкция

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

RESTORE

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

RESTORE FILELISTONLY

По умолчанию номер файла резервного набора данных равен 1.

RESTORE HEADERONLY

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

ПримечаниеПримечание

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

RESTORE VERIFYONLY

По умолчанию значение аргумента backup_set_file_number равно 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}.

Разрешения

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

Примеры

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

См. также

Справочник

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

Инструкция RESTORE FILELISTONLY (Transact-SQL)

Инструкция RESTORE HEADERONLY (Transact-SQL)

RESTORE LABELONLY (Transact-SQL)

RESTORE REWINDONLY (Transact-SQL)

RESTORE VERIFYONLY (Transact-SQL)

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

Резервное копирование и восстановление баз данных SQL Server

FILESTREAM (SQL Server)