SQL Server enregistre une opération de sauvegarde dans la table d’historique du jeu de sauvegarde lorsque vous utilisez VSS pour sauvegarder des fichiers sur un volume
Cet article décrit un comportement « par conception » qui se produit lorsque vous utilisez VSS pour sauvegarder des fichiers sur un volume.
Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 951288
Symptômes
Lorsque vous utilisez une application VSS (Volume Shadow Copy Service) pour sauvegarder des fichiers sur un volume qui inclut SQL Server fichiers de base de données, SQL Server enregistre une opération de sauvegarde dans la table d’historiquebackupset
. Ce comportement se produit même si vous n’avez pas réellement sauvegardé les fichiers de base de données de SQL Server.
Cause
Ce comportement se produit parce que l’application VSS appelle le service SQLWriter sur le système pendant l’opération de sauvegarde. Pour plus d’informations sur la façon dont les applications VSS interagissent avec SQL Writer, consultez SQL Server Applications de sauvegarde - Service VSS (Volume Shadow Copy Service) et SQL Writer.
Précautions à prendre si vous utilisez les entrées de la table d’historique du jeu de sauvegarde pour la récupération des données
Si vous souhaitez utiliser des entrées dans la table d’historique pour la backupset
récupération de données, vous devez vérifier que les entrées représentent des opérations de sauvegarde de base de données réelles.
Vérifiez qu’une entrée représente une opération de sauvegarde de base de données native (par opposition à une sauvegarde vss instantané)
Pour ce faire, exécutez l’instruction suivante :
USE msdb
GO
SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset
Dans le résultat, notez la database_backup_lsn
colonne et la is_snapshot
colonne . Une entrée qui représente une opération de sauvegarde de base de données native présente les caractéristiques suivantes :
- La valeur de la
database_backup_lsn
colonne n’est pas 0. - La valeur de la
is_snapshot
colonne est 0.
Vérifiez que le jeu de sauvegarde ne contient pas d’erreurs
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 cette requête retourne des résultats, cela signifie que vous ne disposez pas de sauvegardes de base de données correctes après la date signalée. Nous vous recommandons vivement d’effectuer une sauvegarde complète de la base de données dès que possible et de vérifier que la sauvegarde complète de la base de données est propre.
Propriété is_damaged
La backupset
table de la base de données msdb contient une ligne pour chaque jeu de sauvegarde. La is_damaged
propriété dans la backupset
table indique si des dommages à la base de données ont été détectés lors de la création de la sauvegarde. Par conséquent, la sauvegarde peut être endommagée et ne peut pas être restaurée.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour