Differenzielle Sicherungen (SQL Server)

Gilt für:SQL Server

Dieser Artikel zur Sicherung und Wiederherstellung ist für alle SQL Server-Datenbanken relevant.

Diese Sicherung basiert auf der letzten vollständigen Datensicherung. Mit einer differenziellen Sicherung werden nur die Daten erfasst, die sich seit dieser vollständigen Sicherung geändert haben. Die vollständige Sicherung, auf der eine differenzielle Sicherung basiert wird, wird als Basis der differenziellen Sicherung bezeichnet. Vollständige Sicherungen, mit Ausnahme von Kopiesicherungen, können als Basis für eine Reihe differenzieller Sicherungen dienen, einschließlich Datenbanksicherungen, Teilsicherungen und Dateisicherungen. Die Basissicherung für eine differenzielle Dateisicherung kann in einer vollständigen Sicherung, einer Dateisicherung oder einer Teilsicherung enthalten sein.

Vorteile

Das Erstellen einer differenziellen Sicherung kann viel schneller sein als das Erstellen einer vollständigen Sicherung. Bei einer differenziellen Sicherung werden nur die seit der letzten vollständigen Sicherung auf Basis der differenziellen Sicherung geänderten Daten aufgezeichnet. Dadurch werden häufige Datensicherungen erleichtert, wodurch das Risiko des Datenverlusts verringert wird. Vor der Wiederherstellung einer differenziellen Sicherung muss jedoch die entsprechende Basis wiederhergestellt werden. Daher sind bei der Wiederherstellung von einer differenziellen Sicherung mehr Schritte und mehr Zeit erforderlich als bei der Wiederherstellung von einer vollständigen Sicherung, da zwei Sicherungsdateien benötigt werden.

Differenzielle Datenbanksicherungen sind besonders dann hilfreich, wenn eine Teilmenge einer Datenbank häufiger geändert wird als die übrigen Daten der Datenbank. In diesen Fällen ermöglichen differenzielle Datenbanksicherungen eine häufige Sicherung ohne den hohen Verwaltungsaufwand vollständiger Datenbanksicherungen.

Bei Verwendung des vollständigen Wiederherstellungsmodells kann mithilfe differenzieller Sicherungen die Anzahl der Protokollsicherungen reduziert werden, die wiederhergestellt werden müssen.

Übersicht über differenzielle Sicherungen

Eine differenzielle Sicherung erfasst den Zustand aller Ausmaße (Sammlungen von acht physisch zusammenhängenden Seiten), die sich beim Erstellen der Differenzbasis und beim Erstellen der differenziellen Sicherung geändert haben. Das bedeutet, dass die Größe einer bestimmten differenziellen Sicherung von der Menge an Daten abhängt, die seit der Basissicherung geändert wurden. Grundsätzlich gilt: Je älter die Basis, desto größer die neue differenzielle Sicherung. In einer Reihe differenzieller Sicherungen enthält ein häufig aktualisierter Block möglicherweise bei jeder differenziellen Sicherung unterschiedliche Daten.

In der folgenden Abbildung wird die Funktionsweise einer differenziellen Sicherung veranschaulicht. Die Abbildung zeigt 24 Datenblöcke, von denen sechs geändert wurden. Die differenzielle Sicherung enthält nur diese sechs Datenausdehnungen. Der differenzielle Sicherungsvorgang basiert auf einer Bitmapseite, die für jeden Block ein Bit enthält. Für jeden seit der Basissicherung aktualisierten Block wird das Bit in der Bitmap auf 1 festgelegt.

Diagram of how the differential bitmap identifies changed extents.

Hinweis

Durch eine Kopiesicherung erfolgt keine Aktualisierung des differenziellen Bitmusters. Daher hat eine Kopiesicherung keine Auswirkungen auf die nachfolgenden differenziellen Sicherungen.

Eine differenzielle Sicherung, die relativ bald nach ihrer Basis durchgeführt wird, kann deutlich kleiner als die Differenzbasis sein. Hierdurch wird Speicherplatz gespart und der Zeitaufwand für die Sicherung reduziert. Im Laufe der Zeit wird aufgrund der in der Datenbank vorgenommenen Änderungen der Unterschied zwischen der Datenbank und einer bestimmten differenziellen Basis jedoch immer größer. Je mehr Zeit zwischen einer differenziellen Sicherung und der zugehörigen Basis liegt, desto umfangreicher wird die differenzielle Sicherung ausfallen. Dies bedeutet, dass letztendlich differenzielle Sicherungen nahezu die Größe der differenziellen Basis erreichen können. Bei einer großen differenziellen Sicherung geht der Vorteil des schnelleren Sicherns und des geringeren Umfangs verloren.

Mit zunehmender Größe der differenziellen Sicherungen kann das Wiederherstellen einer differenziellen Sicherung den Zeitaufwand zum Wiederherstellen einer Datenbank erheblich erhöhen. Daher sollten Sie in regelmäßigen Abständen neue vollständige Sicherungen ausführen, um eine neue differenzielle Basis für die Daten zu erstellen. Sie können z. B. einmal wöchentlich eine vollständige Sicherung der gesamten Datenbank (also eine vollständige Datenbanksicherung) und während der Woche eine regelmäßige Serie von differenziellen Datenbanksicherungen ausführen.

Beim Wiederherstellen müssen Sie die Basis wiederherstellen, bevor Sie eine differenzielle Sicherung wiederherstellen. Anschließend müssen Sie lediglich die letzte differenzielle Sicherung wiederherstellen, um die Datenbank auf den Stand dieser differenziellen Sicherung zu bringen. Normalerweise stellen Sie die letzte vollständige Sicherung und anschließend die letzte differenzielle Sicherung, die auf dieser vollständigen Sicherung basiert, wieder her.

Differenzielle Sicherungen von Datenbanken mit speicheroptimierten Tabellen

Weitere Informationen zu differenziellen Sicherungen und Datenbanken mit speicheroptimierten Tabellen finden Sie unter Sichern einer Datenbank mit speicheroptimierten Tabellen.

Differenzielle Sicherungen schreibgeschützter Datenbanken

Bei schreibgeschützten Datenbanken sind vollständige Sicherungen, die allein verwendet werden, einfacher zu verwalten als wenn sie mit differenziellen Sicherungen verwendet werden. Wenn eine Datenbank schreibgeschützt ist, können Sicherungen und andere Vorgänge die metadaten, die in der Datei enthalten sind, nicht ändern. Daher werden Metadaten, die von einer differenziellen Sicherung benötigt werden, z. B. die Protokollsequenznummer, mit der die differenzielle Sicherung beginnt (die differenzielle Basis-LSN) in der master Datenbank gespeichert. Wenn die differenzielle Basis verwendet wird, wenn die Datenbank schreibgeschützt ist, gibt die differenzielle Bitmap mehr Änderungen an, als seit der Basissicherung aufgetreten sind. Die zusätzlichen Daten werden von der Sicherung gelesen, aber nicht in die Sicherung geschrieben, da die differential_base_lsn in der Backupset-Systemtabelle gespeicherte Tabelle verwendet wird, um zu bestimmen, ob sich die Daten seit der Basis geändert haben.

Wenn eine schreibgeschützte Datenbank neu erstellt, wiederhergestellt oder getrennt und dann angefügt wird, gehen die Informationen zur differenziellen Basis verloren. Dies geschieht, da die master Datenbank nicht mit der Benutzerdatenbank synchronisiert wird. Das SQL Server-Datenbankmodul kann dieses Problem nicht erkennen oder verhindern. Spätere differenzielle Sicherungen basieren nicht auf der letzten vollständigen Sicherung und können unerwartete Ergebnisse liefern. Zum Einrichten einer neuen differenziellen Basis wird empfohlen, eine vollständige Datenbanksicherung zu erstellen.

Bewährte Methoden für die Verwendung differenzieller Sicherungen mit einer schreibgeschützten Datenbank

Nachdem Sie eine vollständige Datenbanksicherung einer schreibgeschützten Datenbank erstellt haben, sichern Sie die master Datenbank, wenn Sie eine nachfolgende differenzielle Sicherung erstellen möchten.

Wenn die master Datenbank verloren geht, stellen Sie sie wieder her, bevor Sie eine differenzielle Sicherung einer Benutzerdatenbank wiederherstellen.

Wenn Sie eine schreibgeschützte Datenbank trennen und anfügen, für die Sie später differenzielle Sicherungen verwenden möchten, nehmen Sie, sobald es praktisch ist, eine vollständige Datenbanksicherung sowohl der schreibgeschützten Datenbank als auch der master Datenbank.

Siehe auch