SQL Server zeichnet einen Sicherungsvorgang in der Backupset-Verlaufstabelle auf, wenn Sie VSS zum Sichern von Dateien auf einem Volume verwenden.

In diesem Artikel wird ein beabsichtigtes Verhalten beschrieben, das auftritt, wenn Sie VSS zum Sichern von Dateien auf einem Volume verwenden.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 951288

Symptome

Wenn Sie eine VSS-Anwendung (Volume Shadow Copy Service) zum Sichern von Dateien auf einem Volume verwenden, das SQL Server Datenbankdateien enthält, zeichnet SQL Server einen Sicherungsvorgang in der backupset Verlaufstabelle auf. Dieses Verhalten tritt auch dann auf, wenn Sie die Datenbankdateien von SQL Server nicht tatsächlich gesichert haben.

Ursache

Dieses Verhalten tritt auf, weil die VSS-Anwendung den SQLWriter-Dienst auf dem System während des Sicherungsvorgangs aufruft. Weitere Informationen zur Interaktion von VSS-Anwendungen mit SQL Writer finden Sie unter SQL Server Sichern von Anwendungen – Volume Shadow Copy Service (VSS) und SQL Writer.

Vorsichtsmaßnahmen, die Sie treffen müssen, wenn Sie die Einträge in der Tabelle "Backupset-Verlauf" für die Datenwiederherstellung verwenden

Wenn Sie Einträge in der Verlaufstabelle für die backupset Datenwiederherstellung verwenden möchten, müssen Sie überprüfen, ob die Einträge tatsächliche Datenbanksicherungsvorgänge darstellen.

Überprüfen Sie, ob ein Eintrag einen nativen Datenbanksicherungsvorgang darstellt (im Gegensatz zu einer VSS-Momentaufnahme-Sicherung).

Führen Sie dazu die folgende Anweisung aus:

USE msdb
GO

SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset

Beachten Sie im Ergebnis die database_backup_lsn Spalte und die is_snapshot Spalte. Ein Eintrag, der einen nativen Datenbanksicherungsvorgang darstellt, weist die folgenden Merkmale auf:

  • Der Wert der database_backup_lsn Spalte ist nicht 0.
  • Der Wert der is_snapshot Spalte ist 0.

Vergewissern Sie sich, dass der Sicherungssatz keine Fehler aufweist.

Führen Sie dazu die folgende Anweisung aus:

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

Wenn diese Abfrage Ergebnisse zurückgibt, bedeutet dies, dass Sie nach dem gemeldeten Datum keine guten Datenbanksicherungen mehr haben. Es wird dringend empfohlen, so bald wie möglich eine vollständige Datenbanksicherung durchzuführen und zu überprüfen, ob die vollständige Datenbanksicherung sauber ist.

Die is_damaged-Eigenschaft

Die backupset Tabelle in der msdb-Datenbank enthält eine Zeile für jeden Sicherungssatz. Die is_damaged -Eigenschaft in der backupset Tabelle gibt an, ob beim Erstellen der Sicherung schäden an der Datenbank erkannt wurden. Daher kann die Sicherung beschädigt und nicht wiederherstellbar sein.