SQL Server enregistre une opération de sauvegarde dans la table d’historique backupset lors de l’utilisation de VSS pour sauvegarder des fichiers sur un volume

S’applique à : Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Workgroup EditionMicrosoft SQL Server 2005 Developer Edition

Symptômes


Envisagez le scénario suivant. Vous installez Microsoft SQL Server sur un volume. Vous utilisez une application de Volume Shadow Copy Service (VSS) pour sauvegarder des fichiers sur le volume. Dans ce scénario, SQL Server enregistre une opération de sauvegarde dans la table d’historique backupset. Ce problème se produit même si vous n’avez pas réellement sauvegardé les fichiers de base de données de SQL Server.

Remarque L’utilitaire NTBackup.exe est une application de VSS.

Cause


Ce problème se produit parce que VSS appelle le service SQLWriter ou le rédacteur de Microsoft SQL Server Desktop Engine (MSDE).

État


Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations


Description du rédacteur MSDE et le service SQLWriter

Le rédacteur MSDE est inclus dans le framework VSS dans Windows XP et dans Windows Server 2003. VSS utilise le rédacteur MSDE pour sauvegarder les bases de données SQL Server 2000. Le service SQLWriter est installé lorsque vous installez SQL Server 2005. VSS utilise le service de SQLWriter pour sauvegarder des bases de données SQL Server 2005 et de bases de données SQL Server 2000.

Comment VSS effectue une opération de sauvegarde

Lorsque VSS effectue une opération de sauvegarde sur un volume, VSS appelle tous les auteurs qui ont des données sur le volume. Cela permet de s’assurer que la sauvegarde est valide. Lorsque VSS appelle le service SQLWriter ou le rédacteur MSDE, le service SQLWriter ou le rédacteur MSDE d’insère un enregistrement dans la table d’historique backupset. Cet enregistrement indique qu’une opération de sauvegarde a été effectuée. Toutefois, le service SQLWriter ou le rédacteur MSDE ne peut pas déterminer si les fichiers de sauvegarde VSS sont des fichiers de base de données.

Précautions à prendre si vous utilisez les entrées de la table d’historique backupset pour la récupération de données

Si vous souhaitez utiliser les entrées de la table d’historique backupset pour la récupération de données, vous devez vérifier que les entrées représentent les opérations de sauvegarde de base de données.

Comment vérifier qu’une entrée représente une opération de sauvegarde de base de données

Pour ce faire, exécutez l’instruction suivante :
USE msdbGO

SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
Dans le résultat, notez les colonnes database_backup_lsn et is_snapshot. Une entrée qui représente une opération de sauvegarde de base de données possède les caractéristiques suivantes :
  • La valeur de la colonne database_backup_lsn n’est pas 0.
  • La valeur de la colonne is_snapshot est 0.

Vérifiez ne qu’aucune erreur sur le jeu de sauvegarde

Pour ce faire, exécutez l’instruction suivante :

WITH backupInfo AS( SELECT database_name AS [DatabaseName], name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name
ORDER BY backup_start_date DESC) AS BackupIDForDB
FROM msdb..backupset) SELECT DatabaseName
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1


Si la requête renvoie des résultats, cela signifie que vous n’avez pas de sauvegardes de la bonne base de données après la date indiquée. Il est fortement recommandé que vous
effectuer une sauvegarde complète de la base de données dès que possible et vérifiez que la sauvegarde de la base de données complète est propre.

La propriété is_damaged
La table backupset dans la base de données msdb contient une ligne pour chaque jeu de sauvegarde. La propriété is_damaged dans la table backupset indique si les dommages à la base de données a été détecté lors de la sauvegarde a été créée. Par conséquent, la sauvegarde peut être endommagé et ne peuvent pas être restaurées.

Logiciel de règlesTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée.
System Center AdvisorBackupset de base de données SQL Server est marqué comme endommagéDans ce de SQL Server, le Conseiller d’instance a détecté la présence d’un ou plus backupset marqué « endommagé » dans la base de données MSDB. Cela signifie que le fichier de sauvegarde est endommagé et essentiellement sur la base de données est exposée et la sauvegarde potentiellement non récupérables. Consultez la section sur les informations collectées et s’assurer qu’une bonne sauvegarde ultérieure est disponible pour la base de données en question. Reportez-vous à l’article de la base de connaissances pour plus d’informations.SQL Server 2008
SQL Server 2008 R2
SQL Server 2012


Références


Pour plus d’informations sur le service SQL Writer, visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :
Pour plus d’informations sur la table d’historique backupset, visitez le site Web MSDN suivant :