Instructions RESTORE – HEADERONLY (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Renvoie un jeu de résultats contenant toutes les dernières informations d'en-tête des sauvegardes pour tous les jeux de sauvegardes d'un périphérique de sauvegarde particulier dans SQL Server.

Notes

Pour une description des arguments, consultez Arguments RESTORE (Transact-SQL).

Conventions de la syntaxe Transact-SQL

Syntaxe

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 }
}

Notes

Pour spécifier l’emplacement et le nom de fichier du Stockage Blob Azure, utilisez le format URL pris en charge à compter de SQL Server 2012 (11.x) SP1 CU2. Bien que le stockage Azure soit un service, son implémentation est similaire à celle d’un disque ou d’une bande afin d’offrir une expérience de restauration cohérente et fluide pour les trois appareils.

Arguments

Pour une description des arguments RESTORE HEADERONLY, consultez Arguments RESTORE (Transact-SQL).

Jeux de résultats

Pour chaque sauvegarde réalisée sur une unité donnée, le serveur envoie une ligne d'informations d'en-tête composée des colonnes suivantes :

Nom de la colonne Type de données Description des jeux de sauvegardes SQL Server
BackupName1 nvarchar(128) Nom du jeu de sauvegardes.
BackupDescription nvarchar(255) Description du jeu de sauvegardes. Sa valeur peut être NULL.
BackupType smallint Type de sauvegarde :

1 = Base de données
2 = Journal des transactions
4 = Fichier
5 = Base de données différentielle
6 = Fichier différentiel
7 = Partiel
8 = Partiel différentiel
ExpirationDate datetime Date d'expiration du jeu de sauvegardes.
Compressed bit Indique si le jeu de sauvegarde a fait l'objet d'une compression logicielle :

0 = Non
1 = Oui
Position smallint Position du jeu de sauvegardes dans le volume (utilisée avec l'option FILE =).
DeviceType tinyint Numéro correspondant à l'unité utilisée pour la sauvegarde.

Disque :

- 2 = Logique
- 102 = Physique

Bande :

- 5 = Logique
- 105 = Physique

Unité virtuelle :

- 7 = Logique
- 107 = Physique

URL :

- 9 = Logique
- 109 = Physique

Les noms d’unité logique et numéros d’unité se trouvent dans sys.backup_devices. Pour plus d’informations, consultez sys.backup_devices.
UserName nvarchar(128) Nom de l'utilisateur qui a effectué l'opération de sauvegarde.
ServerName nvarchar(128) Nom du serveur qui a permis l'écriture du jeu de sauvegardes.
DatabaseName nvarchar(128) Nom de la base de données qui a été sauvegardée.
DatabaseVersion int Version de la base de données à partir de laquelle la sauvegarde a été créée.
DatabaseCreationDate datetime Date et heure de création de la base de données.
BackupSize numeric(20,0) Taille de la sauvegarde en octets.
FirstLSN numeric(25,0) Numéro séquentiel dans le journal correspondant au premier enregistrement du journal dans le jeu de sauvegarde.
LastLSN numeric(25,0) Numéro séquentiel dans le journal correspondant à l'enregistrement du journal suivant après le jeu de sauvegarde.
CheckpointLSN numeric(25,0) Numéro séquentiel dans le journal correspondant au point de contrôle le plus récent au moment où la sauvegarde a été créée.
DatabaseBackupLSN numeric(25,0) Numéro séquentiel dans le journal correspondant à la sauvegarde complète la plus récente de la base de données.

DatabaseBackupLSN constitue le « début du point de contrôle » déclenché au lancement de la sauvegarde. Ce LSN coïncide avec FirstLSN si la sauvegarde est effectuée quand la base de données est inactive et qu’aucune réplication n’a été configurée.
BackupStartDate datetime Date et heure de début de l'opération de sauvegarde.
BackupFinishDate datetime Date et heure de fin de l'opération de sauvegarde.
SortOrder smallint Ordre de tri du serveur. Cette colonne n'est valide que pour les sauvegardes de base de données. Fourni pour la compatibilité ascendante.
CodePage smallint Page de codes du serveur ou jeu de caractères utilisé par le serveur.
UnicodeLocaleId int Option de configuration de ID locale Unicode du serveur utilisée pour le tri des données caractères Unicode. Fourni pour la compatibilité ascendante.
UnicodeComparisonStyle int Option de configuration du style de comparaison Unicode du serveur qui offre un contrôle supplémentaire du tri des données Unicode. Fourni pour la compatibilité ascendante.
CompatibilityLevel tinyint Paramètre de niveau de compatibilité de la base à partir de laquelle la sauvegarde a été créée.
SoftwareVendorId int Numéro d'identification du fournisseur de logiciel. Pour SQL Server, ce numéro est 4608 (ou, en hexadécimal, 0x1200).
SoftwareVersionMajor int Numéro de version principal du serveur qui a créé le jeu de sauvegardes.
SoftwareVersionMinor int Numéro de version secondaire du serveur qui a créé le jeu de sauvegardes.
SoftwareVersionBuild int Numéro de build du serveur qui a créé le jeu de sauvegardes.
MachineName nvarchar(128) Nom de l'ordinateur qui a effectué l'opération de sauvegarde.
Flags int Signification des différents bits d’indicateurs :

- 1 = La sauvegarde de journal contient des opérations de journalisation en bloc.

- 2 = Sauvegarde instantanée.

- 4 = La base de données était accessible en lecture seule au moment de la sauvegarde.

- 8 = La base de données était accessible en mode mono-utilisateur au moment de la sauvegarde.

- 16 = La sauvegarde contient des sommes de contrôle de sauvegarde.

- 32 = La base de données a été endommagée pendant la sauvegarde, mais l’opération de sauvegarde doit continuer malgré les erreurs.

- 64 = Sauvegarde de la fin du journal.

- 128 = Sauvegarde de la fin du journal avec des métadonnées incomplètes.

- 256 = Sauvegarde de la fin du journal avec NORECOVERY.

Important : Au lieu d’utiliser des Flags, nous vous conseillons les colonnes de valeur booléenne individuelles (en commençant à HasBulkLoggedData, jusqu’à IsCopyOnly dans ce tableau).
BindingID uniqueidentifier ID de liaison de la base de données. Cette valeur correspond à database_guid dans sys.database_recovery_status. Lors de la restauration d'une base de données, une nouvelle valeur est attribuée. Voir aussi FamilyGUID.
RecoveryForkID uniqueidentifier ID de la fourchette de récupération de fin. Cette colonne correspond à last_recovery_fork_guid dans la table backupset.

Pour les sauvegardes de données, RecoveryForkID équivaut à FirstRecoveryForkID.
Collation nvarchar(128) Classement utilisé par la base de données.
FamilyGUID uniqueidentifier ID de la base de données d'origine lors de sa création. Cette valeur reste identique lors de la restauration de la base de données.
HasBulkLoggedData bit 1 = Sauvegarde de journal contenant des opérations de journalisation en bloc.
IsSnapshot bit 1 = Sauvegarde instantanée.
IsReadOnly bit 1 = La base de données était accessible en lecture seule au moment de la sauvegarde.
IsSingleUser bit 1 = La base de données était en mode mono-utilisateur au moment de la sauvegarde.
HasBackupChecksums bit 1 = La sauvegarde contient des sommes de contrôle de sauvegarde.
IsDamaged bit 1 = La base de données a été endommagée lors de la sauvegarde, mais l'opération de sauvegarde doit continuer malgré les erreurs.
BeginsLogChain bit 1 = Il s'agit de la première d'une chaîne continue de sauvegardes journalisées. Une séquence de journaux démarre par la première sauvegarde journalisée effectuée après la création de la base de données, ou lorsqu’elle passe du mode de récupération simple à complète ou utilisant les journaux de transactions.
HasIncompleteMetaData bit 1 = Sauvegarde de la fin du journal avec des métadonnées incomplètes.

Pour plus d’informations sur les sauvegardes de fin de journal avec des métadonnées incomplètes, consultez Sauvegardes de la fin du journal (SQL Server).
IsForceOffline bit 1 = Sauvegarde effectuée avec NORECOVERY ; la base de données a été placée en mode hors connexion par la sauvegarde.
IsCopyOnly bit 1 = Sauvegarde de copie unique.

Une sauvegarde de copie unique n’influe pas sur les procédures globales de sauvegarde et de restauration de la base de données. Pour plus d’informations, consultez Sauvegardes de copie uniquement (SQL Server).
FirstRecoveryForkID uniqueidentifier ID de la fourchette de récupération de début. Cette colonne correspond à first_recovery_fork_guid dans la table backupset.

Pour les sauvegardes de données, FirstRecoveryForkID équivaut à RecoveryForkID.
ForkPointLSN numeric(25,0) Si FirstRecoveryForkID n’équivaut pas à RecoveryForkID, il s’agit du numéro séquentiel dans le journal du point de branchement. Dans les autres cas, cette valeur est NULL.
RecoveryModel nvarchar(60) Modèle de restauration de la base de données, parmi :

- FULL
- BULK-LOGGED
- SIMPLE
DifferentialBaseLSN numeric(25,0) Pour une sauvegarde différentielle unique, cette valeur est égale au FirstLSN de la base différentielle. Les modifications avec des LSN supérieurs ou égaux à DifferentialBaseLSN sont incluses dans la sauvegarde différentielle.

Pour une sauvegarde différentielle multiple, la valeur est NULL, tandis que le LSN de base doit être déterminé au niveau du fichier. Pour plus d’informations, consultez l’article RESTORE FILELISTONLY.

Pour les types de sauvegarde non différentiels, la valeur est toujours NULL.

Pour plus d’informations, consultez Sauvegardes différentielles (SQL Server).
DifferentialBaseGUID uniqueidentifier Pour une sauvegarde différentielle unique, cette valeur constitue l'identificateur unique de la base différentielle.

Pour les sauvegardes différentielles multiples, cette valeur est NULL, tandis que la base différentielle doit être déterminée par fichier.

Pour les types de sauvegarde non différentiels, la valeur est NULL.
BackupTypeDescription nvarchar(60) Type de sauvegarde en tant que chaîne, parmi :

- DATABASE
- TRANSACTION LOG
- FILE OR FILEGROUP
- DATABASE DIFFERENTIAL
- FILE DIFFERENTIAL PARTIAL
- PARTIAL DIFFERENTIAL
BackupSetGUID uniqueidentifier Numéro d'identification unique du jeu de sauvegardes, par lequel s'effectue l'identification sur le support. Sa valeur peut être NULL.
CompressedBackupSize bigint Nombre d'octets du jeu de sauvegarde. Pour les sauvegardes non compressées, il s’agit de la même valeur que BackupSize.

Pour calculer le taux de compression, utilisez CompressedBackupSize et BackupSize.

Pendant une mise à niveau de msdb, cette valeur est configurée pour correspondre à la valeur de la colonne BackupSize.
containment tinyint S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

Indique l'état de la relation contenant-contenu de la base de données.

0 = La relation contenant-contenu de base de données est désactivée
1 = La base de données est dans une relation contenant-contenu partielle
KeyAlgorithm nvarchar(32) S’applique à : SQL Server 2014 (12.x) CU 1 et versions ultérieures.

Algorithme de chiffrement utilisé pour chiffrer la sauvegarde. La valeur NO_Encryption indique que la sauvegarde n’est pas chiffrée. Lorsque la valeur correcte ne peut pas être déterminée, la valeur doit être NULL.
EncryptorThumbprint varbinary(20) S’applique à : SQL Server 2014 (12.x) CU 1 et versions ultérieures.

Empreinte numérique du chiffreur pouvant être utilisé pour rechercher un certificat ou la clé asymétrique dans la base de données. Si la sauvegarde n’est pas chiffrée, cette valeur est NULL.
EncryptorType nvarchar(32) S’applique à : SQL Server 2014 (12.x) CU 1 et versions ultérieures.

Type de chiffreur utilisé : certificat ou clé asymétrique. Si la sauvegarde n’est pas chiffrée, cette valeur est NULL.
LastValidRestoreTime datetime S’applique à : SQL Server 2022 (16.x) et versions ultérieures.

L’heure de la dernière restauration valide.
TimeZone nvarchar(32) S’applique à : SQL Server 2022 (16.x) et versions ultérieures.

Le fuseau horaire du serveur à partir duquel la sauvegarde a été effectuée.
CompressionAlgorithm nvarchar(32) S’applique à : SQL Server 2022 (16.x) et versions ultérieures.

Identifie l’algorithme de compression utilisé pour compresser le fichier de sauvegarde. La valeur par défaut est MS_XPRESS. Pour plus d’informations, consultez BACKUP.

1 Si des mots de passe sont définis pour les jeux de sauvegarde, RESTORE HEADERONLY n’affiche que les informations complètes relatives au jeu de sauvegarde dont le mot de passe correspond à la définition de l’option PASSWORD de la commande. RESTORE HEADERONLY affiche également les informations complètes relatives aux jeux de sauvegarde non protégés. La colonne BackupName des autres jeux de sauvegarde du support protégés par mot de passe prend la valeur 'Password Protected', et toutes les autres colonnes ont la valeur NULL.

Remarques

Un client peut utiliser RESTORE HEADERONLY pour récupérer toutes les informations des en-têtes de sauvegarde pour toutes les sauvegardes figurant sur une unité particulière. Pour chaque sauvegarde réalisée sur une unité de sauvegarde, le serveur envoie les informations d'en-tête sous forme de ligne.

RESTORE HEADERONLY recherche tous les jeux de sauvegarde sur le support. Par conséquent, la production de ce jeu de résultats en utilisant des lecteurs de bande à capacité élevée risque de prendre du temps. Pour obtenir un aperçu du support sans récupérer les informations propres à chaque jeu de sauvegarde, utilisez RESTORE LABELONLY ou définissez l’argument FILE = <backup_set_file_number>.

Par sa nature, Microsoft Tape Format autorise la cohabitation de jeux de sauvegarde créés avec d’autres logiciels sur le même support que les jeux de sauvegarde SQL Server. Le jeu de résultats renvoyé par RESTORE HEADERONLY inclue une ligne pour chacun de ces autres jeux de sauvegardes.

Sécurité

Une opération de sauvegarde peut éventuellement spécifier des mots de passe pour un support de sauvegarde, un jeu de sauvegarde ou les deux. Lorsqu'un mot de passe a été défini sur un support de sauvegarde ou un jeu de sauvegarde, vous devez entrer le ou les mots de passe corrects dans l'instruction RESTORE. Ces mots de passe empêchent les opérations non autorisées de restauration et d’ajout de jeux de sauvegarde au support à l’aide d’outils SQL Server. En revanche, un mot de passe n’empêche pas d’écraser les supports en cas d’utilisation de l’option FORMAT de l’instruction BACKUP.

Important

Le niveau de protection de ce mot de passe est faible. Son but est d'éviter que des utilisateurs autorisés ou non autorisés effectuent une restauration incorrecte à l'aide des outils SQL Server. En aucun cas, elle n'empêche la lecture des données de la sauvegarde par d'autres moyens ou le remplacement du mot de passe. Cette fonctionnalité sera supprimée dans une version future de SQL Server. N’utilisez pas cette fonctionnalité dans le nouveau travail de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. La bonne pratique pour protéger les sauvegardes consiste à stocker des bandes de sauvegarde dans un emplacement sécurisé ou à les sauvegarder sur des fichiers de disque protégés par des listes de contrôle d’accès appropriées (ACL). La liste de contrôle d'accès doit être définie à la racine du répertoire dans lequel les sauvegardes sont effectuées.

Autorisations

Vous devez avoir l'autorisation CREATE DATABASE pour pouvoir obtenir des informations sur un jeu de sauvegardes ou sur une unité de sauvegarde. Pour plus d’informations, consultez GRANT – octroi d’autorisations de base de données (Transact-SQL).

Exemples

L'exemple suivant renvoie les informations contenues dans l'en-tête pour le fichier de disque C:\AdventureWorks-FullBackup.bak.

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

Voir aussi