RESTORE HEADERONLY (Transact-SQL)

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

[!REMARQUE]

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

Icône Lien de rubriqueConventions de 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 } 

--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 } = { 'physical_backup_device_name' |
              @physical_backup_device_name_var } 
} 

Arguments

Pour obtenir des descriptions des arguments RESTORE HEADERONLY, consultez Arguments RESTORE (Transact-SQL).

Ensembles 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 :

[!REMARQUE]

RESTORE HEADERONLY recherche tous les jeux de sauvegarde sur le support. Par conséquent, la production de cet ensemble 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.

[!REMARQUE]

Grâce au format de bande Microsoft, des jeux de sauvegarde créés avec d'autres logiciels peuvent cohabiter sur le même support que les jeux de sauvegarde MicrosoftSQL Server. Le jeu de résultats renvoyé par RESTORE HEADERONLY inclue une ligne pour chacun de ces autres jeux de sauvegardes.

Nom de la colonne

Type de données

Description des jeux de sauvegardes SQL Server

Description des autres jeux de sauvegarde

BackupName

nvarchar(128)

Nom du jeu de sauvegardes.

Nom du dataset

BackupDescription

nvarchar(255)

Description du jeu de sauvegardes.

Description du dataset

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

Type de sauvegarde :

1 = Normal

5 = Différentiel

16 = Incrémentiel

17 = Quotidiennement

ExpirationDate

datetime

Date d'expiration du jeu de sauvegardes.

NULL

Compressé

BYTE(1)

Indique si le jeu de sauvegarde a fait l'objet d'une compression logicielle :

0 = non

1 = oui

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 =).

Position du jeu de sauvegardes dans le volume

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

Les noms d'unité logique et numéros d'unité se trouvent dans sys.backup_devices ; pour plus d'informations, consultez sys.backup_devices (Transact-SQL).

NULL

UserName

nvarchar(128)

Nom de l'utilisateur qui a effectué l'opération de sauvegarde.

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.

NULL

DatabaseName

nvarchar(128)

Nom de la base de données qui a été sauvegardée.

NULL

DatabaseVersion

int

Version de la base de données à partir de laquelle la sauvegarde a été créée.

NULL

DatabaseCreationDate

datetime

Date et heure de création de la base de données.

NULL

BackupSize

numeric(20,0)

Taille de la sauvegarde en octets.

NULL

FirstLSN

numeric(25,0)

Numéro séquentiel dans le journal correspondant au premier enregistrement du journal dans le jeu de sauvegarde.

NULL

LastLSN

numeric(25,0)

Numéro séquentiel dans le journal correspondant à l'enregistrement suivant après le jeu de sauvegarde

NULL

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.

NULL

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é lors du démarrage de la sauvegarde. Ce LSN coïncide avec FirstLSN si la sauvegarde est effectuée lorsque la base de données est inactive et qu'aucune réplication n'a été configurée.

NULL

BackupStartDate

datetime

Date et heure de début de l'opération de sauvegarde.

Date d'écriture du support

BackupFinishDate

datetime

Date et heure de fin de l'opération de sauvegarde.

Date d'écriture du support

SortOrder

smallint

Ordre de tri du serveur. Cette colonne n'est valide que pour les sauvegardes de base de données. Fourni pour des raisons de compatibilité descendante.

NULL

CodePage

smallint

Page de codes du serveur ou jeu de caractères utilisé par le serveur.

NULL

UnicodeLocaleId

int

Option de configuration de ID locale Unicode du serveur utilisée pour le tri des données caractères Unicode. Fourni pour des raisons de compatibilité descendante.

NULL

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 des raisons de compatibilité descendante.

NULL

CompatibilityLevel

tinyint

Paramètre de niveau de compatibilité de la base à partir de laquelle la sauvegarde a été créée.

NULL

SoftwareVendorId

int

Numéro d'identification du fournisseur de logiciel. Pour SQL Server, ce numéro est 4608 (ou, en hexadécimal, 0x1200).

Numéro d'identification du fournisseur de logiciel

SoftwareVersionMajor

int

Numéro de version principal du serveur qui a créé le jeu de sauvegardes.

Numéro de version principal du logiciel qui a créé le jeu de sauvegardes

SoftwareVersionMinor

int

Numéro de version secondaire du serveur qui a créé le jeu de sauvegardes.

Numéro de version secondaire du logiciel qui a créé le jeu de sauvegardes

SoftwareVersionBuild

int

Numéro de version (build) du serveur qui a créé le jeu de sauvegardes.

NULL

MachineName

nvarchar(128)

Nom de l'ordinateur qui a effectué l'opération de sauvegarde.

Type de l'ordinateur qui a effectué l'opération de sauvegarde

Indicateurs

int

Significations de bit d'indicateur individuel avec la valeur 1 :

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 lors de la sauvegarde, mais l'opération de sauvegarde doit continuer malgré les erreurs.

64 = Sauvegarde de fichier journal.

128 = Sauvegarde de fichier journal avec des métadonnées incomplètes.

256 = Sauvegarde de fichier journal avec NORECOVERY.

ImportantImportant
Au lieu d'utiliser des indicateurs, nous vous conseillons les colonnes de valeur booléenne individuelles (répertoriées ci-dessous, commençant par HasBulkLoggedData et terminant par IsCopyOnly).

NULL

BindingID

uniqueidentifier

ID de liaison de la base de données. Cela correspond à sys.databasesdatabase_guid. Lors de la restauration d'une base de données, une nouvelle valeur est attribuée. Voir aussi FamilyGUID (ci-dessous).

NULL

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.

NULL

Collation

nvarchar(128)

Classement utilisé par la base de données.

NULL

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.

NULL

HasBulkLoggedData

bit

1 =Sauvegarde de journal contenant des opérations de journalisation en bloc.

NULL

IsSnapshot

bit

1 = Sauvegarde instantanée.

NULL

IsReadOnly

bit

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

NULL

IsSingleUser

bit

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

NULL

HasBackupChecksums

bit

1 = La sauvegarde contient des sommes de contrôle de sauvegarde.

NULL

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.

NULL

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.

NULL

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 fichier journal après défaillance.

NULL

IsForceOffline

bit

1 = Sauvegarde effectuée avec NORECOVERY ; la base de données a été placée en mode hors connexion par la sauvegarde.

NULL

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 type copie seule.

NULL

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.

NULL

ForkPointLSN

numeric(25,0) NULL

Si FirstRecoveryForkID n'équivaut pas à RecoveryForkID, il s'agit du numéro séquentiel dans le journal du point de la fourchette. Dans les autres cas, cette valeur est NULL.

NULL

RecoveryModel

nvarchar(60)

Modèle de restauration de la base de données, parmi 

FULL

BULK-LOGGED

SIMPLE

NULL

DifferentialBaseLSN

numeric(25,0) NULL

Pour une sauvegarde différentielle unique, la valeur équivaut à FirstLSN de la base différentielle ; les modifications avec un numéro de séquence d'enregistrement (LSN) supérieur ou égal à DifferentialBaseLSN sont incluses dans le différentiel.

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 RESTORE FILELISTONLY (Transact-SQL).

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

Pour plus d'informations, consultez Base d'une sauvegarde différentielle.

NULL

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.

NULL

BackupTypeDescription

nvarchar(60)

Type de sauvegarde en tant que chaîne, parmi :

BASE DE DONNÉES

JOURNAL DES TRANSACTIONS

FICHIER OU GROUPE DE FICHIERS

BASE DE DONNÉES DIFFÉRENTIELLE

FICHIER DIFFÉRENTIEL PARTIEL

DIFFÉRENTIEL PARTIEL

Type de sauvegarde en tant que chaîne, parmi :

NORMAL

DIFFERENTIAL

INCREMENTAL

DAILY

BackupSetGUID

uniqueidentifier NULL

Numéro d'identification unique du jeu de sauvegardes, par lequel s'effectue l'identification sur le support.

NULL

CompressedBackupSize

uint64

Nombre d'octets du jeu de sauvegarde. Pour les sauvegardes non compressées, il s'agit de la même valeur que celle de 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.

NULL

[!REMARQUE]

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 sont de type NULL.

Notes

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 la forme d'une ligne.

Autorisations

Dans SQL Server 2008, 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).

Une opération de sauvegarde peut éventuellement spécifier des mots de passe pour un support de sauvegarde, pour un jeu de sauvegarde ou pour les deux jeux. 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 de restauration non autorisées ainsi que les ajouts non autorisés de jeux de sauvegarde sur les supports par le biais des outils MicrosoftSQL 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.

Remarque relative à la sécuritéRemarque relative à la sécurité

La protection assurée par ce mot de passe est plutôt 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 prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. La méthode conseillé en matière de protection des sauvegardes consiste à stocker les bandes de sauvegarde dans un emplacement sûr ou à sauvegarder les fichiers disque protégés par une liste de contrôle d'accès (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.

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' 
WITH NOUNLOAD;
GO