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

Применимо к: SQL Server Управляемый экземпляр SQL Azure

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

Примечание

Описания аргументов см. в статье Аргументы инструкций RESTORE (Transact-SQL).

Соглашения о синтаксисе Transact-SQL

Синтаксис

RESTORE HEADERONLY
FROM <backup_device>
[ WITH
    {
    -- Backup set options
    FILE = { backup_set_file_number | @backup_set_file_number }
    | PASSWORD = { password | @password_variable }
    | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

    -- Media set options
    | MEDIANAME = { media_name | @media_name_variable }
    | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

    -- Error management options
    | { CHECKSUM | NO_CHECKSUM }
    | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

    -- Tape options
    | { REWIND | NOREWIND }
    | { UNLOAD | NOUNLOAD }
    } [ , ...n ]
]
[ ; ]

<backup_device> ::=
{
   { logical_backup_device_name |
     @logical_backup_device_name_var }
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |
       @physical_backup_device_name_var }
}

Примечание

URL— это формат, используемый для указания расположения и имени файла для Хранилище BLOB-объектов Azure и поддерживается начиная с SQL Server 2012 (11.x) с пакетом обновления 1 (CU 2). Хотя служба хранилища Azure является службой, реализация аналогична диску и ленте, что обеспечивает согласованное и простое восстановление для всех трех устройств.

Аргументы

Описание аргументов см. в RESTORE HEADERONLY разделе Аргументы RESTORE (Transact-SQL).

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

Сервер отправляет строку данных заголовка со следующими столбцами для каждой резервной копии на данном устройстве:

Имя столбца Тип данных Описание резервных наборов данных SQL Server
BackupName1 nvarchar(128) Имя резервного набора данных.
BackupDescription nvarchar(255) Описание резервного набора данных. Может иметь значение NULL.
BackupType smallint Тип резервной копии:

1 = база данных
2 = журнал транзакций
4 = файл;
5 = разностная резервная копия базы данных
6 = разностная резервная копия файла
7 = частичная резервная копия
8 = частичная разностная резервная копия
ExpirationDate datetime Дата истечения срока хранения резервного набора данных.
Compressed bit Сжат ли резервный набор данных с помощью программных методов сжатия:

0 = нет
1 = да
Position smallint Позиция резервного набора данных в томе (для использования с параметром FILE =).
DeviceType tinyint Число, соответствующее устройству, используемому для операции резервного копирования.

Диск:

- 2 = логическое
- 102 = физический

Лента:

- 5 = Логическое
- 105 = физический

Виртуальное устройство:

- 7 = Логическое
- 107 = физический

URL-адрес:

- 9 = Логическое
- 109 = физический

Логические имена и номера устройств находятся в sys.backup_devices. Дополнительные сведения см. в разделе sys.backup_devices.
UserName nvarchar(128) Имя пользователя, выполнившего операцию резервного копирования.
ServerName nvarchar(128) Имя сервера, записавшего резервный набор данных.
DatabaseName nvarchar(128) Имя базы данных, для которой была создана резервная копия.
DatabaseVersion int Версия базы данных, для которой была создана резервная копия.
DatabaseCreationDate datetime Дата и время, когда была создана база данных.
BackupSize numeric(20,0) Размер резервной копии, в байтах.
FirstLSN numeric(25,0) Регистрационный номер транзакции из первой записи журнала в резервном наборе данных.
LastLSN numeric(25,0) Регистрационный номер транзакции в журнале для следующей записи журнала после резервного набора данных.
CheckpointLSN numeric(25,0) Регистрационный номер транзакции в журнале для последней контрольной точки на момент создания резервной копии.
DatabaseBackupLSN numeric(25,0) Регистрационный номер транзакции в журнале для последней полной резервной копии базы данных.

DatabaseBackupLSN — это "начало контрольной точки", которая активируется при запуске резервного копирования. Этот номер LSN совпадает с FirstLSN резервным копированием, когда база данных простаивает и репликация не настроена.
BackupStartDate datetime Дата и время начала операции резервного копирования базы данных.
BackupFinishDate datetime Дата и время завершения операции резервного копирования базы данных.
SortOrder smallint Порядок сортировки на сервере. Данный столбец действителен только для резервных копий баз данных. Предоставляется для обратной совместимости.
CodePage smallint Кодовая страница сервера или кодировка, используемый сервером.
UnicodeLocaleId int Параметр конфигурации, определяющий код локали сервера для сортировки символьных данных в Юникоде. Предоставляется для обратной совместимости.
UnicodeComparisonStyle int Параметр конфигурации, определяющий режим сравнения данных в Юникоде на сервере, что обеспечивает дополнительные возможности управления сортировкой. Предоставляется для обратной совместимости.
CompatibilityLevel tinyint Параметр уровня совместимости базы данных, для которой была создана резервная копия.
SoftwareVendorId int Идентификационный номер поставщика программного обеспечения. Для SQL Server это число имеет 4608 значение (или шестнадцатеричное 0x1200).
SoftwareVersionMajor int Основной номер версии сервера, который создал резервный набор данных.
SoftwareVersionMinor int Дополнительный номер версии сервера, который создал резервный набор данных.
SoftwareVersionBuild int Номер построения сервера, который создал резервный набор данных.
MachineName nvarchar(128) Имя компьютера, выполнившего операцию резервного копирования.
Flags int Значения битов отдельных флагов:

- 1 = резервное копирование журнала содержит операции с неполным протоколированием.

- 2 = резервное копирование моментального снимка.

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

— 8 = база данных была в однопользовательском режиме при резервном копировании.

- 16 = резервное копирование содержит контрольные суммы резервных копий.

- 32 = база данных была повреждена при резервном копировании, но операция резервного копирования была запрошена для продолжения, несмотря на ошибки.

— 64 = резервная копия заключительного фрагмента журнала.

— 128 = резервная копия заключительного фрагмента журнала с неполными метаданными.

— 256 = резервная копия заключительного фрагмента журнала с NORECOVERY.

Важно: Рекомендуется использовать вместо отдельных логических Flags столбцов (начиная с HasBulkLoggedData и заканчивая IsCopyOnly в этой таблице).
BindingID uniqueidentifier Идентификатор привязки для базы данных. Это значение соответствует database_guid в sys.database_recovery_status. Новое значение присваивается, когда база данных восстанавливается. См. также FamilyGUID.
RecoveryForkID uniqueidentifier Идентификатор последней вилки восстановления. Этот столбец соответствует last_recovery_fork_guid в таблице резервных наборов данных .

Для резервных RecoveryForkID копий данных значение равно FirstRecoveryForkID.
Collation nvarchar(128) Параметры сортировки, используемые базой данных.
FamilyGUID uniqueidentifier Идентификатор исходной базы данных, присвоенный в момент ее создания. Это значение остается неизменным при восстановлении базы данных.
HasBulkLoggedData bit 1 = резервная копия журналов содержит операции с неполным протоколированием.
IsSnapshot bit 1 = резервное копирование путем создания моментального снимка.
IsReadOnly bit 1 = во время резервного копирования база данных была доступна только для чтения.
IsSingleUser bit 1 = во время резервного копирования база данных находилась в однопользовательском режиме.
HasBackupChecksums bit 1 = резервная копия содержит контрольные суммы резервных копий.
IsDamaged bit 1 = во время резервного копирования база данных была повреждена, однако затребовано продолжение операции, несмотря на ошибки.
BeginsLogChain bit 1 = это первая резервная копия журналов в непрерывной цепочке. Цепочка журналов начинается с первой резервной копии журнала, созданной после создания базы данных или при переключении с простой модели восстановления на полную или Bulk-Logged.
HasIncompleteMetaData bit 1 = резервная копия заключительного фрагмента журнала с неполными метаданными.

Дополнительные сведения о резервных копиях заключительных фрагментов журналов с неполными метаданными резервного копирования см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).
IsForceOffline bit 1 = резервное копирование выполнено с параметром NORECOVERY; для резервного копирования база данных была переведена в режим «вне сети».
IsCopyOnly bit 1 = резервная копия только для копирования.

Резервная копия только для копирования не влияет на общие процедуры резервного копирования и восстановления базы данных. Дополнительные сведения см. в статье Резервные копии только для копирования (SQL Server).
FirstRecoveryForkID uniqueidentifier Идентификатор первой вилки восстановления. Этот столбец соответствует first_recovery_fork_guid в таблице резервных наборов данных .

Для резервных FirstRecoveryForkID копий данных значение равно RecoveryForkID.
ForkPointLSN numeric(25,0) Если FirstRecoveryForkID значение не равно RecoveryForkID, это значение является порядковый номер в журнале точки вилки. В противном случае - значение NULL.
RecoveryModel nvarchar(60) Модель восстановления для базы данных, одна из следующих:

-ПОЛНЫЙ
— МАССОВОЕ ВЕДЕНИЕ ЖУРНАЛА
-ПРОСТОЙ
DifferentialBaseLSN numeric(25,0) Для одноуровневой разностной резервной копии значение равно FirstLSN разностной базе. Изменения с номерами LSN, превышающими или равными DifferentialBaseLSN , включаются в разностную систему.

Для многобазового разностного резервного копирования значение равно NULL, а базовый номер LSN должен быть определен на файловом уровне. Дополнительные сведения см. в статье Инструкции RESTORE — FILELISTONLY (Transact-SQL).

Для разностных резервных копий это значение всегда равно NULL.

Дополнительные сведения см. в разделе Разностные резервные копии (SQL Server).
DifferentialBaseGUID uniqueidentifier Для разностной резервной копии с одной основой значение является уникальным идентификатором базовой копии для разностного копирования.

Для разностного резервного копирования на основе нескольких базовых копий это значение равно NULL, а базовая копия для разностного копирования должна определяться по отдельным файлам.

Для разностных резервных копий это значение равно NULL.
BackupTypeDescription nvarchar(60) Тип резервной копии, один из:

-БАЗЫ ДАННЫХ
— ЖУРНАЛ ТРАНЗАКЦИЙ
— ФАЙЛ ИЛИ ФАЙЛОВАЯ ГРУППА
— РАЗНОСТНАЯ БАЗА ДАННЫХ
— ФАЙЛ РАЗНОСТНЫЙ ЧАСТИЧНЫЙ
— ЧАСТИЧНОЕ РАЗНОСТНОЕ
BackupSetGUID uniqueidentifier Уникальный идентификационный номер резервного набора данных, по которому этот набор определяется в носителе. Может иметь значение NULL.
CompressedBackupSize bigint Число байтов в резервном наборе данных. Для несжатых резервных копий это значение равно BackupSize.

Чтобы вычислить коэффициент сжатия, используйте CompressedBackupSize и BackupSize.

msdb Во время обновления это значение устанавливается в соответствии со значением столбцаBackupSize.
containment tinyint Применимо к: SQL Server 2012 (11.x) и более поздних версий.

Указывает состояние включения базы данных.

0 = включение базы данных отключено
1 = база данных находится в состоянии частичного включения
KeyAlgorithm nvarchar(32) Применимо к: SQL Server 2014 (12.x) CU 1 и более поздних версий.

Алгоритм шифрования резервной копии. NO_Encryption указывает, что резервная копия не была зашифрована. Если не удается определить правильное значение, значение должно иметь значение NULL.
EncryptorThumbprint varbinary(20) Применимо к: SQL Server 2014 (12.x) CU 1 и более поздних версий.

Отпечаток шифратора, который можно использовать для поиска сертификата или асимметричного ключа в базе данных. Если резервная копия не была зашифрована, это значение равно NULL.
EncryptorType nvarchar(32) Применимо к: SQL Server 2014 (12.x) CU 1 и более поздних версий.

Тип используемого шифратора: сертификат или асимметричный ключ. Если резервная копия не была зашифрована, это значение равно NULL.
LastValidRestoreTime datetime Применимо к: SQL Server 2022 (16.x) и более поздних версий.

Последнее допустимое время восстановления.
TimeZone nvarchar(32) Применимо к: SQL Server 2022 (16.x) и более поздних версий.

Часовой пояс сервера, с которого была сделана резервная копия.
CompressionAlgorithm nvarchar(32) Применимо к: SQL Server 2022 (16.x) и более поздних версий.

Определяет алгоритм сжатия, используемый для сжатия файла резервной копии. Значение по умолчанию — MS_XPRESS. Дополнительные сведения см. в описании BACKUP.

1 Если для резервных наборов данных определены пароли, отображаются полные сведения только для резервного набора данных, RESTORE HEADERONLY пароль которого соответствует указанному PASSWORD параметру команды. RESTORE HEADERONLY также отображаются полные сведения о незащищенных резервных наборах данных. Столбец BackupName для других защищенных паролем резервных наборов данных на носителе имеет значение 'Password Protected', а все остальные столбцы имеют значение NULL.

Комментарии

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

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

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

Безопасность

В операции создания резервной копии могут дополнительно указываться пароли для набора носителей, резервного набора данных или и того и другого. Если для набора носителей или резервного набора данных установлен пароль, то в инструкции RESTORE необходимо указывать правильные пароли. Пароли предотвращают несанкционированные операции восстановления и присоединения резервных наборов данных к носителю при помощи инструментов SQL Server. Однако пароль не предотвращает перезапись носителя с помощью параметра FORMAT инструкции BACKUP.

Важно!

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

Разрешения

Для получения сведений о резервном наборе данных или устройстве резервного копирования требуется разрешение CREATE DATABASE. Дополнительные сведения см. в статье GRANT, предоставление разрешений на базу данных (Transact-SQL).

Примеры

В следующем примере возвращаются данные из заголовка файла на диске C:\AdventureWorks-FullBackup.bak.

RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks-FullBackup.bak';
GO

См. также раздел