Аргументы инструкции RESTORE (Transact-SQL)
Изменения: 12 декабря 2006 г.
В этом разделе документированы аргументы, описанные в разделах «Синтаксис» инструкции RESTORE {DATABASE|LOG} и связанного с ней набора вспомогательных инструкций: RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY и RESTORE VERIFYONLY. Большинство аргументов поддерживаются только некоторыми из этих шести инструкций. Поддержка каждого аргумента указана в его описании.
Синтаксические обозначения в 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)
Аргументы
DATABASE
Примечание. Поддерживается инструкцией RESTORE. Указывает целевую базу данных. Если указан список файлов и файловых групп, то восстанавливаются только эти файлы и файловые группы.
Для базы данных, использующей полную модель восстановления или модель восстановления с неполным протоколированием, в большинстве случаев Microsoft SQL Server 2005 требует перед восстановлением базы данных создать резервную копию заключительного фрагмента журнала. Восстановление базы данных без первоначального резервирования конца журнала приведет к ошибке, если инструкция RESTORE не содержит предложения WITH REPLACE или WITH STOPAT. Дополнительные сведения о резервном копировании заключительного фрагмента журнала см. в разделе Резервные копии заключительного фрагмента журнала.
LOG
Примечание. Поддерживается инструкцией RESTORE. Указывает, что резервная копия журналов транзакций должна быть применена к базе данных. Журналы транзакций должны использоваться последовательно. SQL Server проверяет резервные копии журнала транзакций, чтобы гарантировать, что транзакции загружаются в нужную базу данных и в верной последовательности. Для применения нескольких журналов транзакций следует использовать параметр NORECOVERY во всех операциях восстановления, кроме последней.
Примечание. Как правило, последний восстановленный журнал представляет собой резервную копию заключительного фрагмента журнала. Резервная копия tail-log backup является резервной копией заключительного фрагмента журнала, сделанной непосредственно после восстановления базы данных, обычно после отказа базы данных. Создание резервной копии заключительного фрагмента журнала поврежденной базы данных предотвращает потерю работы благодаря сохранению журнала, для которого еще не была создана резервная копия (заключительный фрагмент журнала). Дополнительные сведения см. в разделе Резервные копии заключительного фрагмента журнала. Дополнительные сведения см. в разделе Использование резервных копий журналов транзакций.
{ 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
Заполнитель, который указывает, что можно задать несколько страниц.Максимальное число страниц, которые можно восстановить в один файл в последовательности восстановления — 1000. Но если файл содержит большое количество поврежденных страниц, лучше восстанавливать не страницы, а весь файл целиком.
Дополнительные сведения о восстановлении страниц см. в разделе Восстановление страниц.
- PAGE
- [ ,...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 = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.bak' или TAPE = '\\.\TAPE0'. Если данное имя приводится в качестве переменной (@physical_backup_device_name_var), то оно может представлять собой строковую константу (@**physical_backup_device_name_var = 'physcial_backup_device_name') или переменную типа символьной строки, за исключением типов данных ntext и text.Используя сетевой сервер с именем UNC (которое должно содержать имя компьютера), укажите тип дискового устройства. Дополнительные сведения об использовании имен UNC см. в разделе Устройства резервного копирования.
Учетная запись, под которой работает SQL Server, должна обладать доступом READ на удаленном компьютере или сетевом сервере, чтобы выполнять операцию RESTORE.
- { logical_backup_device_name | **@logical_backup_device_name_var }
n
Заполнитель, который указывает, что можно задать в списке до 64 устройств резервного копирования с разделителями-запятыми.Требует ли последовательность восстановления столько же устройств резервного копирования, сколько было использовано для создания набора носителей, которым принадлежат резервные копии, зависит от того, происходит восстановление в автономном или оперативном режиме, следующим образом:
- Автономное восстановление позволяет использовать меньше устройств, чем было задействовано для создания резервных копий.
- Оперативное восстановление требует наличия всех устройств резервного копирования архива. Попытка произвести восстановление с меньшим числом устройств не удается.
Например, рассмотрим случай резервного копирования базы данных на четыре накопителя на магнитной ленте, подключенных к серверу. Для оперативного восстановления необходимо иметь четыре накопителя, подключенных к серверу; автономное восстановление позволяет восстановить резервную копию, если в компьютере менее четырех накопителей.
Дополнительные сведения см. в разделе Работа с носителями резервных копий в SQL Server.
Примечание. Проводя восстановление из копии с зеркального набора носителей, можно указать по одному зеркалу для каждого семейства носителей. Но в случае ошибок наличие других зеркальных носителей позволяет быстро устранить некоторые проблемы восстановления. Можно заменить поврежденный том носителя соответствующим томом с другого зеркала. Учтите, что при автономном восстановлении можно использовать меньше устройств, чем семейств носителей, но каждое семейство обрабатывается только один раз.
<database_snapshot>::=
Примечание. Поддерживается инструкцией RESTORE {DATABASE}. DATABASE_SNAPSHOT **=**database_snapshot_name
Возвращает базу данных к моментальному снимку базы данных, указанному database_snapshot_name. Аргумент DATABASE_SNAPSHOT доступен только для полного восстановления базы данных. При выполнении операции возврата к предшествующему состоянию моментальный снимок базы данных занимает место полной резервной копии базы данных.Для операции возврата к предшествующему состоянию необходимо, чтобы указанный моментальный снимок базы данных был единственным для базы данных. В ходе операции возврата моментальный снимок базы данных и целевая база данных отмечаются как
In restore
. Дополнительные сведения см. в подразделе «Примечания» раздела RESTORE {DATABASE}.
WITH <with_options> ::=
Указывает параметры, используемые для операции восстановления предшествующего состояния. Сводку инструкций, в которых используется каждый параметр, см. в секции «Сводка совместимости с параметрами WITH» ниже в данном разделе.
PARTIAL
Примечание. Поддерживается только инструкцией RESTORE {DATABASE}. Указывает операцию частичного восстановления, которая восстанавливает первичную файловую группу и любые указанные вторичные файловые группы. Параметр PARTIAL неявно выбирает первичную файловую группу; указывать FILEGROUP = 'PRIMARY' не требуется. Чтобы восстановить вторичную файловую группу, необходимо явно задать ее с помощью параметра FILE или FILEGROUP.
Не разрешается применять параметр PARTIAL в инструкциях RESTORE LOG.
Начиная с версии SQL Server 2005, параметр PARTIAL запускает начальный этап поэтапного восстановления, которое позволяет восстановить оставшиеся файловые группы позднее. Дополнительные сведения см. в разделе Выполнение поэтапных восстановлений.
Примечание. Начальный этап поэтапного восстановления заменяет частичное восстановление базы данных Microsoft SQL Server 2000. Частичное восстановление базы данных предназначено для восстановления только поврежденной части базы данных (подмножества файловых групп) в новом месте, что позволяет скопировать поврежденные или отсутствующие данные из исходной базы данных. Частично восстановленная база данных не предназначена для использования в качестве производственной, и для повышения производительности в инструкции RESTORE не проводятся многие из обычных проверок безопасности. Однако в SQL Server 2005 параметр PARTIAL выполняет эти проверки безопасности.
{ CHECKSUM | NO_CHECKSUM }
Примечание. Поддерживается инструкциями RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY и RESTORE VERIFYONLY. Поведение по умолчанию обозначает проверку контрольных сумм, если они существуют, и продолжать без проверки, если они отсутствуют.
CHECKSUM
Указывает, что необходимо проверить контрольные суммы резервных копий, и если в резервной копии нет контрольной суммы, приводит к отказу операции восстановления с выдачей сообщения об отсутствии контрольной суммы.По умолчанию при обнаружении правильной контрольной суммы RESTORE сообщает об ошибке контрольной суммы и восстановление прекращается. Но если указать CONTINUE_AFTER_ERROR, то работа RESTORE продолжается после сообщения об ошибке контрольной суммы и обнаружения нескольких страниц, содержащих неправильные контрольные суммы, если этому не препятствуют ошибки.
Контрольные суммы резервных копий — это новая возможность SQL Server 2005. Дополнительные сведения о работе с контрольными суммами резервных копий см. в разделе Обнаружение и устранение ошибок носителей.
- 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
Указывает, что операция восстановления продолжается после возникновения ошибки.Дополнительные сведения о продолжении работы, несмотря на ошибки, см. в разделе Действия при ошибках восстановления SQL Server, вызванных повреждением резервных копий.
Если в резервной копии есть поврежденные страницы, то лучше всего повторить операцию восстановления с использованием альтернативной резервной копии, не содержащей ошибок (например, используя резервную копию, созданную до повреждения страниц). В качестве последнего средства можно попытаться восстановить данные из поврежденной резервной копии с помощью параметра CONTINUE_AFTER_ERROR восстанавливающей инструкции.
- STOP_ON_ERROR
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, указывает второй резервный набор данных.
Если не указано иное, то значение по умолчанию — 1, за исключением инструкции RESTORE HEADERONLY, в случае использования которой обрабатываются все наборы резервных данных в наборе носителей. Дополнительные сведения см. в подразделе «Указание резервного набора данных» этого раздела.
Важно! Этот параметр FILE не связан с параметром FILE для указания файла базы данных, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.
KEEP_REPLICATION
Примечание. Поддерживается только инструкцией RESTORE. Аргумент KEEP_REPLICATION следует использовать при настройке репликации с доставкой журналов. Это предотвращает удаление параметров репликации, если резервная копия базы данных или резервная копия журналов восстанавливается на сервере «горячего» резервирования и база данных воссоздается. Не разрешается указывать этот параметр при восстановлении резервной копии с параметром NORECOVERY. Для обеспечения функций репликации после восстановления:
- Базы данных msdb и master на сервере «горячего» резервирования должны быть синхронизированы с базами данных msdb и master на сервере-источнике.
- Сервер «горячего» резервирования должен быть переименован, и ему должно быть присвоено такое же имя, как у сервера-источника.
LOADHISTORY
Примечание. Поддерживается инструкцией RESTORE VERIFYONLY. Указывает, что операция восстановления загружает данные в журнальные таблицы msdb. Параметр LOADHISTORY обеспечивает для единственного проверяемого резервного набора данных загрузку данных о резервных копиях SQL Server, хранимых на наборе носителей, в журнальные таблицы резервного копирования и восстановления в базе данных msdb. Дополнительные сведения о журнальных таблицах см. в разделе Системные таблицы (Transact-SQL).
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. Предоставляет пароль набора носителей. Пароль набора носителей является символьной строкой.
Если пароль был назначен во время форматирования набора носителей, этот пароль необходим для доступа к любому набору резервных данных на этом носителе. Указать неверный пароль или указать пароль, если набор носителей настроен на работу без пароля, является ошибкой.
Важно! Этот пароль обеспечивает слабую защиту для набора носителей. Дополнительные сведения см. в разделе «Разрешения» для соответствующей инструкции. Примечание. Параметр MEDIAPASSWORD в следующем выпуске будет исключен.
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 может быть необходим, чтобы убедиться в наличии достаточного свободного пространства в месте назначения и определить потенциальные конфликты с существующими файлами.
Дополнительные сведения см. в разделе Создание копий баз данных с помощью резервного копирования и восстановления.
PASSWORD = { password | **@**password_variable }
Примечание. Поддерживается инструкциями RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY. Предоставляет пароль резервного набора данных. Пароль набора резервных копий является символьной строкой.
Если при создании резервного набора данных был назначен пароль, то этот пароль необходим для выполнения любой операции восстановления из резервного набора данных. Указать неверный пароль или указать пароль, если резервный набор данных настроен на работу без пароля, является ошибкой.
Важно! Этот пароль обеспечивает слабую защиту для набора носителей. Дополнительные сведения см. в подразделе «Разрешения» для соответствующих инструкций. Примечание. Аргумент PASSWORD будет удален в следующей версии SQL Server.
BLOCKSIZE = { blocksize | **@**blocksize_variable }
Указывает размер физического блока в байтах. Поддерживаются размеры 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 }
Указывает общее число буферов ввода-вывода, которые будут использоваться для операции восстановления. Можно указать любое целое положительное значение, однако большое число буферов может вызвать ошибку нехватки памяти из-за чрезмерного виртуального адресного пространства в процессе Sqlservr.exe.Общее используемое буферами пространство определяется по следующей формуле: buffercount*****maxtransfersize.
- MAXTRANSFERSIZE = { maxtransfersize | **@**maxtransfersize_variable }
Указывает наибольший объем пакета данных в байтах для обмена между носителем резервного набора и SQL Server. Поддерживаются значения, кратные 65536 байтам (64 КБ), вплоть до 4194304 байт (4 МБ).
ENABLE_BROKER
Примечание. Поддерживается только инструкцией RESTORE {DATABASE}. Запускает компонент Service Broker во включенном режиме, чтобы сообщения можно было отправить немедленно. По умолчанию в процессе восстановления компонент Service Broker запускается в отключенном режиме.
ERROR_BROKER_CONVERSATIONS
Примечание. Поддерживается только инструкцией RESTORE {DATABASE}. Завершает все диалоги, находящиеся в состоянии ошибки, которые были присоединены к базе данных или восстановлены. Брокер отключается до завершения этой операции, после чего включается.
NEW_BROKER
Примечание. Поддерживается только инструкцией RESTORE {DATABASE}. Создает новое значение service_broker_guid в представлении каталога sys.databases и восстановленной базе данных и завершает все конечные точки диалогов с очисткой. Посредник включен, но никакие сообщения не посылаются в удаленные конечные точки диалога.
{ RECOVERY | NORECOVERY | STANDBY }
Примечание. Поддерживается только инструкцией RESTORE. RECOVERY
Настраивает операцию восстановления на откат любых незавершенных транзакций. После процедуры восстановления база данных готова к использованию. Если не указан ни один из параметров NORECOVERY, RECOVERY и STANDBY, RECOVERY является параметром по умолчанию.Если запланированы последующие операции RESTORE (RESTORE LOG или RESTORE DATABASE из разностного архива), то вместо них следует указать параметры NORECOVERY или STANDBY.
При восстановлении из резервных наборов данных, созданных в более ранних версиях SQL Server, может потребоваться обновление базы данных. Это обновление выполняется автоматически, если указан параметр WITH RECOVERY. Дополнительные сведения см. в разделе Применение резервных копий журнала транзакций.
Примечание. Если предложение 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 также не разрешается применять, если необходимо обновление базы данных.Примечание. В SQL Server 2000 этот файл был известен как «файл отката». Резервный файл используется для сохранения прообраза страниц, измененных во время прохода отмены инструкции RESTORE WITH STANDBY. Благодаря резервному файлу базу данных можно сделать доступной только для чтения между транзакциями и использовать с сервером «горячего» резервирования или в особых ситуациях восстановления, когда полезно проверить базу данных между операциями восстановления журналов транзакций. После операции RESTORE WITH STANDBY файл отката автоматически удаляется следующей операцией RESTORE. Если резервный файл был удален вручную перед следующей операцией RESTORE, то необходимо повторно восстановить всю базу данных. Пока база данных находится в состоянии STANDBY, к резервному файлу следует относиться с такой же осторожностью, как к любому другому файлу базы данных. В отличие от других файлов базы данных этот файл открывается только компонентом Database Engine во время активных операций восстановления.
Аргумент standby_file_name указывает резервный файл, местонахождение которого хранится в журнале базы данных. Если файл с таким именем существует, то он перезаписывается; в противном случае компонент Database Engine создает этот файл.
Требования к размерам конкретного резервного файла зависят от числа действий отката, вызванных незавершенными транзакциями в ходе операции восстановления.
Важно! Если на диске, содержащем резервный файл с указанным именем, отсутствует свободное место, то операция восстановления останавливается.
Сравнение параметров RECOVERY и NORECOVERY приведено в подразделе «Примечания» раздела RESTORE.
REPLACE
Примечание. Поддерживается только инструкцией RESTORE. Указывает, что SQL Server должен создать указанную базу данных и связанные с ней файлы, даже если уже существует другая база данных с таким именем. В этом случае существующая база данных будет удалена. Если параметр REPLACE не указан, выполняется проверка безопасности. Это предотвращает перезапись другой базы данных по ошибке. Проверка безопасности гарантирует, что инструкция RESTORE DATABASE не восстанавливает базу данных на текущем сервере, если выполнены два следующих условия:
- база данных, указанная в инструкции RESTORE, уже существует на текущем сервере;
- имя базы данных отличается от имени базы данных, записанного в резервный набор данных.
Параметр REPLACE также позволяет инструкции RESTORE перезаписать существующий файл, принадлежность которого к восстанавливаемой базе данных не может быть удостоверена. Обычно при использовании инструкции RESTORE блокируется перезапись ранее существовавших файлов. Параметр WITH REPLACE может использоваться таким же образом, как и параметр RESTORE LOG.
Параметр REPLACE также отменяет требование создать резервную копию конца журнала перед восстановлением базы данных.
Дополнительные сведения см. в разделе Использование параметра REPLACE.
RESTART
Примечание. Поддерживается только инструкцией RESTORE. Указывает, что SQL Server должен перезапустить прерванную операцию восстановления. Инструкция RESTART перезапускает операцию восстановления с точки прерывания.
RESTRICTED_USER
Примечание. Поддерживается только инструкцией RESTORE. Ограничивает доступ к вновь созданной базе данных для членов ролей db_owner, dbcreator и sysadmin. В SQL Server 2005 параметр RESTRICTED_USER заменяет параметр DBO_ONLY. Параметр DBO_ONLY применяется только для обратной совместимости.
Следует использовать с параметром RECOVERY.
Дополнительные сведения см. в разделе Установка параметров базы данных.
{ 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, или пока не закончит работу экземпляр сервера. Поскольку лента остается открытой, другие процессы не могут получить доступа к ленте. Дополнительные сведения об отображении списка открытых лент и закрытии открытой ленты см. в разделе Устройства резервного копирования.
{ UNLOAD | NOUNLOAD }
Примечание. Поддерживается RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY и RESTORE VERIFYONLY. Эти параметры используются только для ленточных устройств. При использовании другого устройства они пропускаются.
Примечание. Параметр UNLOAD/NOUNLOAD является настройкой сеанса, он сохраняется в течение работы сеанса или пока не будет сброшен при указании другого значения. - UNLOAD
Указывает, что лента автоматически перематывается и выгружается по завершению операции резервного копирования. Параметр UNLOAD применяется в начале сеанса по умолчанию.
- NOUNLOAD
Указывает, что после операции RESTORE лента останется загруженной в накопитель на магнитной ленте.
- UNLOAD
STATS [ = percentage ]
Примечание. Поддерживается инструкциями RESTORE и RESTORE VERIFYONLY. Отображает сообщение каждый раз, когда завершается очередной процент задания, и используется для отслеживания хода выполнения. Если аргумент percentage не указан, SQL Server выводит сообщение после завершения каждых 10 процентов (приблизительно).
Параметр STATS сообщает о готовности в процентах по отношению к порогу сообщения о следующем интервале. Это происходит приблизительно при указанном процентном значении; например, если параметру STATS присвоено значение 10, компонент Database Engine выдает сообщения приблизительно с таким интервалом; в частности, вместо точного значения 40% может быть показано значение 43%. Это не является проблемой для больших резервных наборов данных, поскольку показатель готовности в процентах перемещается очень медленно между завершенными вызовами ввода-вывода.
{ STOPAT | STOPATMARK | STOPBEFOREMARK }
Примечание. Поддерживается только инструкцией RESTORE и только для полной модели восстановления и модели восстановления с неполным протоколированием. STOPAT = { 'date_time' | **@**date_time_var }
Указывает, что база данных будет восстановлена в состояние, в котором она находилась в момент, соответствующий указанным дате и времени.Если для параметра STOPAT использована переменная, то она должна иметь тип данных varchar, char, smalldatetime или datetime. Только записи журнала транзакций, сделанные до указанных даты и времени, применяются к базе данных.
Примечание. Если указанное время STOPAT назначено после создания последней резервной копии журналов, база данных остается в невосстановленном состоянии, как если бы инструкция RESTORE LOG работала с параметром NORECOVERY. Дополнительные сведения см. в разделе Восстановление базы данных на момент времени в пределах резервной копии.
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.
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.
Результирующие наборы
Сведения о результирующих наборах см. в следующих разделах:
- RESTORE FILELISTONLY (Transact-SQL)
- Инструкция RESTORE HEADERONLY (Transact-SQL)
- RESTORE LABELONLY (Transact-SQL)
Замечания
Дополнительные примечания см. в следующих разделах:
- RESTORE (Transact-SQL)
- Инструкция RESTORE HEADERONLY (Transact-SQL)
- RESTORE LABELONLY (Transact-SQL)
- RESTORE REWINDONLY (Transact-SQL)
- RESTORE VERIFYONLY (Transact-SQL)
Указание резервного набора данных
Резервный набор данных содержит резервную копию, полученную в результате отдельной успешной операции резервного копирования. Инструкции RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY выполняются над отдельным резервным набором данных в рамках набора носителей на указанном устройстве или устройствах резервного копирования. Указанная резервная копия должна быть расположена на наборе носителей.
Параметр для указания резервного набора данных с целью восстановления имеет вид:
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: 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}.
Разрешения
Сведения о разрешениях см. в следующих разделах:
- RESTORE (Transact-SQL)
- RESTORE FILELISTONLY (Transact-SQL)
- Инструкция RESTORE HEADERONLY (Transact-SQL)
- RESTORE LABELONLY (Transact-SQL)
- RESTORE REWINDONLY (Transact-SQL)
- RESTORE VERIFYONLY (Transact-SQL)
Примеры
Примеры см. в следующих разделах:
- RESTORE (Transact-SQL)
- RESTORE FILELISTONLY (Transact-SQL)
- Инструкция RESTORE HEADERONLY (Transact-SQL)
См. также
Справочник
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
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
12 декабря 2006 г. |
|
14 апреля 2006 г. |
|
5 декабря 2005 г. |
|