Übersicht über Sicherungen [SQL Server]

Mit jedem Wiederherstellungsmodell können SQL Server-Datenbanken oder einzelne Dateien oder Dateigruppen der Datenbank vollständig oder teilweise wiederhergestellt werden. Sicherungen auf Tabellenebene können nicht erstellt werden.

HinweisHinweis

SQL Server sichert Daten sämtlicher unterstützter Betriebssysteme und stellt diese wieder her. Dabei spielt es keine Rolle, ob es sich um 64-Bit- oder 32-Bit-Systeme handelt. Informationen zu den unterstützten Betriebssystemen finden Sie unter Hardware- und Softwareanforderungen für die Installation von SQL Server 2008.

Datensicherungen

Der Bereich einer Sicherung von Daten (Datensicherung) kann eine vollständige Datenbank, einen Teil einer Datenbank, einen Satz von Dateien oder Dateigruppen umfassen. Für die genannten Bereiche werden in SQL Server vollständige Sicherungen und differenzielle Sicherungen unterstützt:

  • Vollständige Sicherung

    Eine vollständige Sicherung umfasst alle Daten in einer bestimmten Datenbank oder einen Satz von Dateien oder Dateigruppen. Außerdem muss die Sicherung genügend Protokolle enthalten, um die Wiederherstellung dieser Daten zu ermöglichen.

  • Differenzielle Sicherung

    Eine differenzielle Sicherung basiert auf der letzten vollständigen Sicherung der Daten. Diese wird als Basis der differenziellen Sicherung oder als differenzielle Basis bezeichnet. Eine differenzielle Basis stellt eine vollständigen Sicherung der Daten mit Lese-/Schreibzugriff dar. In einer differenziellen Sicherung sind nur die Daten enthalten, die seit der Sicherung der differenziellen Basis geändert wurden. Im Allgemeinen werden differenzielle Sicherungen relativ zeitnah nach der zugehörigen Basissicherung erstellt; die differenziellen Sicherungen sind weniger umfangreich als die Basis einer vollständigen Sicherung und kann schneller erstellt werden. Daher kann das Erstellen häufiger Sicherungen mithilfe von differenziellen Sicherungen beschleunigt und damit die Gefahr des Datenverlusts reduziert werden. Gewöhnlich wird eine differenzielle Basis für verschiedene aufeinander folgende differenzielle Sicherungen verwendet. Zum Zeitpunkt der Wiederherstellung wird zuerst die vollständige Sicherung und anschließend die aktuellste differenzielle Sicherung wiederhergestellt.

    Im Laufe der Zeit nehmen durch die Aktualisierungen der Datenbank die enthaltenen Datenmengen zu, die in differenziellen Sicherungen enthalten sind. Damit verlängert sich auch die Zeit, die zum Erstellen und Wiederherstellen der Sicherung erforderlich ist. Schließlich muss eine neue vollständige Sicherung erstellt werden, die wiederum eine neue differenzielle Basis für eine andere Reihe von differenziellen Sicherungen fungiert.

    HinweisHinweis

    Im Allgemeinen umfasst eine differenzielle Sicherung dieselben Datendateien, die auch in einer einzelnen differenziellen Basissicherung enthalten sind. Beim einfachen Wiederherstellungsmodell kann eine differenzielle Sicherung nur eine einzige differenzielle Basis aufweisen. Wenn Sie versuchen, mehrere Basissicherungen zu verwenden, wird ein Fehler ausgelöst, und der Sicherungsvorgang kann nicht erfolgreich ausgeführt werden. Beim vollständigen Wiederherstellungsmodell können differenzielle Dateisicherungen mehrere Basissicherungen aufweisen. Die Verwaltung verschiedener Basissicherungen kann jedoch schwierig sein. Weitere Informationen finden Sie unter Verwenden von Multibasedifferenzialsicherungen.

Die einzelnen Datensicherungen enthalten Teile des Transaktionsprotokolls, sodass die Sicherung bis zum Ende einer Transaktionsprotokollsicherung wiederhergestellt werden kann.

Nach der ersten Datensicherung sind beim vollständigen und beim massenprotokollierten Wiederherstellungsmodell regelmäßige Transaktionsprotokollsicherungen (oder Protokollsicherungen) erforderlich. Jede Protokollsicherung umfasst den Teil des Transaktionsprotokolls, der beim Erstellen der Sicherung aktiv war. In der entsprechenden Protokollsicherung sind alle Protokolldatensätze enthalten, die in einer vorherigen Protokollsicherung nicht gesichert wurden.

Datenbanksicherungen

Datenbanksicherungen sind einfach zu verwenden. Ihre Ausführung empfiehlt sich dann, wenn die Datenbankgröße dies zulässt. In SQL Server werden die folgenden Datenbanksicherungstypen unterstützt.

Sicherungstyp

Beschreibung

Datenbanksicherung

Eine vollständige Sicherung der gesamten Datenbank. Datenbanksicherungen stellen die gesamte Datenbank zum Zeitpunkt dar, an dem die Sicherung abgeschlossen wurde.

Differenzielle Datenbanksicherungen

Eine Sicherung sämtlicher Dateien in der Datenbank. In dieser Sicherung sind nur Datenblöcke enthalten, die seit der letzten Datenbanksicherung der einzelnen Dateien geändert wurden.

Teilsicherungen

Teilsicherungen und differenzielle Teilsicherungen wurden in SQL Server 2005 eingeführt. Sie wurden dafür konzipiert, mehr Flexibilität für das Sichern von Datenbanken, in denen schreibgeschützte Dateigruppen enthalten sind, unter dem einfachen Wiederherstellungsmodell bereitzustellen. Diese Sicherungen werden jedoch von allen Wiederherstellungsmodellen unterstützt.

In SQL Server 2008 werden die folgenden Dateisicherungstypen unterstützt.

Sicherungstyp

Beschreibung

Teilsicherung

Eine Sicherung aller Daten in der primären Dateigruppe, aller Dateigruppen mit Lese-/Schreibzugriff und aller optional angegebenen schreibgeschützten Dateien oder Dateigruppen. Eine Teilsicherung einer schreibgeschützten Datenbank enthält nur die primäre Dateigruppe.

Differenzielle Teilsicherung

Eine Sicherung, in der nur Datenblöcke enthalten sind, die seit der letzten Teilsicherung derselben Dateigruppen geändert wurden.

Dateisicherungen

Die Dateien in einer Datenbank können einzeln gesichert und wiederhergestellt werden. Durch das Verwenden von Dateisicherungen kann die Wiederherstellung beschleunigt werden, da Sie nicht die gesamte Datenbank, sondern nur die beschädigten Dateien wiederherstellen. Wenn eine Datenbank beispielsweise aus mehreren Dateien besteht, die auf verschiedenen Datenträgern gespeichert sind, und auf einem Datenträger ein Fehler auftritt, muss nur die Datei auf dem fehlerhaften Datenträger wiederhergestellt werden. Das Planen und Wiederherstellen von Dateisicherungen kann äußerst komplex sein. Daher sollten Dateisicherungen nur dann verwendet werden, wenn es für Ihren Wiederherstellungsplan eindeutig von Vorteil ist.

In SQL Server werden die folgenden Dateisicherungstypen unterstützt.

Sicherungstyp

Beschreibung

Dateisicherung

Eine vollständige Sicherung aller Daten in einer oder mehreren Dateien oder Dateigruppen.

Wichtiger HinweisWichtig
Beim einfachen Wiederherstellungsmodell werden Dateisicherungen im Wesentlichen auf schreibgeschützte sekundäre Dateigruppen beschränkt. Sie können eine Dateisicherung einer Dateigruppe mit Lese-/Schreibzugriff erstellen. Bevor Sie eine Dateisicherung mit Lese-/Schreibzugriff jedoch wiederherstellen können, müssen Sie für die Dateigruppe den Schreibschutz festlegen und dann eine differenzielle Sicherung der schreibgeschützten Datei ausführen.

Differenzielle Dateisicherungen

Eine Sicherung von Dateien, wobei nur die Datenblöcke gesichert werden, die seit der letzten vollständigen Sicherung jeder Datei geändert wurden.

HinweisHinweis
Beim einfachen Wiederherstellungsmodell müssen dazu die Daten seit der vollständigen Sicherung als schreibgeschützt festgelegt worden sein.
HinweisHinweis

Sie können Volltextkataloge sichern und wiederherstellen. Weitere Informationen finden Sie unter Sichern und Wiederherstellen eines SQL Server 2008-Volltextkatalogs und Schrittweise Wiederherstellung und Volltextindizes.

Sicherung des Transaktionsprotokolls (nur vollständiges und massenprotokolliertes Wiederherstellungsmodell)

Beim vollständigen und beim massenprotokollierten Wiederherstellungsmodell sind regelmäßige Transaktionsprotokollsicherungen (oder Protokollsicherungen) erforderlich. Jede Protokollsicherung umfasst den Teil des Transaktionsprotokolls, der beim Erstellen der Sicherung aktiv war, und enthält alle Protokolldatensätze, die in einer vorherigen Protokollsicherung nicht gesichert wurden. Eine ununterbrochene Sequenz von Protokollsicherungen enthält eine vollständige ununterbrochene Protokollkette der Datenbank. Beim vollständigen Wiederherstellungsmodell und in Einzelfällen auch beim massenprotokollierten Wiederherstellungsmodell können Sie eine Datenbank mithilfe einer ununterbrochenen Protokollkette bis zu einem beliebigen Zeitpunkt wiederherstellen.

Bevor Sie die erste Protokollsicherung erstellen können, müssen Sie eine vollständige Sicherung erstellen, z. B. eine Datenbanksicherung. Anschließend ist das regelmäßige Sichern des Transaktionsprotokolls erforderlich. Damit kann nicht nur die Gefahr des Datenverlusts minimiert werden, sondern es wird auch die Kürzung des Transaktionsprotokolls ermöglicht. Weitere Informationen finden Sie unter Verwenden von Transaktionsprotokollsicherungen.

Wichtiger HinweisWichtig

Damit die Anzahl der wiederherzustellenden Sicherungen eingeschränkt wird, müssen Sie Ihre Daten unbedingt regelmäßig sichern. Sie könnten z. B. eine wöchentliche vollständige Datenbanksicherung und tägliche differenzielle Datenbanksicherungen planen.

Kopiesicherungen

Normalerweise wird beim Erstellen einer Sicherung die Datenbank geändert, und außerdem hat dies Auswirkungen auf die Wiederherstellung späterer Sicherungen. Manchmal ist es jedoch hilfreich, eine Sicherung für einen bestimmten Zweck vorzunehmen, die sich nicht auf die allgemeinen Sicherungs- und Wiederherstellungsvorgänge für die Datenbank auswirkt. Zu diesem Zweck wurden in SQL Server 2005 Kopiesicherungen eingeführt. Diese Sicherungen hängen nicht von der normalen Sequenz von SQL Server-Sicherungen ab. Weitere Informationen finden Sie unter Kopiesicherungen.

Sicherungsmedien

SQL Server-Sicherungen werden auf Sicherungsmedien erstellt, z. B. auf Datenträgerdateien oder Bandmedien. Sie können neue Sicherungen an vorhandene Sicherungen auf einem Sicherungsmedium anfügen oder vorhandene Sicherungen überschreiben. Weitere Informationen finden Sie unter Arbeiten mit Sicherungsmedien in SQL Server.

Planen von Sicherungen

Da ein Sicherungsvorgang nur minimale Auswirkungen auf ausgeführte Transaktionen hat, können Sicherungsvorgänge auch während der normalen Vorgänge ausgeführt werden. Während eines Sicherungsvorgangs werden in SQL Server die Daten aus den Datenbankdateien direkt auf die Sicherungsmedien kopiert. Die Daten werden nicht geändert, und Transaktionen, die während der Sicherung ausgeführt wurden, werden nie verzögert. Daher kann eine SQL Server-Sicherung mit minimalen Auswirkungen auf die Arbeitsauslastung ausgeführt werden. Weitere Informationen zu Einschränkungen bei Sicherungen hinsichtlich der Parallelität finden Sie unter "Einschränkungen für Sicherungsvorgänge in SQL Server" weiter unten in diesem Thema.

Sie können Sicherungen so planen, dass sie automatisch in festgelegten Zeitabständen ausgeführt werden. Informationen zum Planen von Sicherungsaufträgen für Datenbank- und Protokollsicherungen finden Sie unter Wartungsplanungs-Assistent.

Sicherungskomprimierung

Ab SQL Server 2008 Enterprise können Sicherungen komprimiert werden, und ab SQL Server 2008 ist die Wiederherstellung komprimierter Sicherungen möglich. Weitere Informationen finden Sie unter Sicherungskomprimierung (SQL Server).

Einschränkungen für Sicherungsvorgänge in SQL Server

Ab SQL Server 2005 kann eine Sicherung erfolgen, während die Datenbank online ist und verwendet wird. Es gelten dabei jedoch folgende Einschränkungen.

Offlinedaten können nicht gesichert werden

Wenn im Rahmen eines Sicherungsvorgangs implizit oder explizit auf Offlinedaten verwiesen wird, tritt bei diesem Vorgang ein Fehler auf. Einige typische Fälle:

  • Sie fordern eine vollständige Datenbanksicherung an, wobei eine Dateigruppe der Datenbank offline ist. Da bei der vollständigen Datenbanksicherung implizit alle Dateigruppen berücksichtigt werden, ist der Vorgang fehlerhaft.

    Zum Sichern dieser Datenbank können Sie eine Dateisicherung verwenden und nur die Dateigruppen angeben, die online sind.

  • Sie fordern eine Teilsicherung an, wobei eine Dateigruppe mit Lese-/Schreibzugriff offline ist. Da bei der Teilsicherung alle Dateigruppen mit Lese-/Schreibzugriff berücksichtigt werden müssen, tritt ein Fehler auf.

  • Sie fordern eine Sicherung bestimmter Dateien an, wobei eine Datei nicht online ist. Dabei tritt ein Fehler auf. Wenn Sie Onlinedateien sichern möchten, können Sie die Offlinedatei in der Dateiliste auslassen und den Vorgang wiederholen.

Im Allgemeinen wird eine Protokollsicherung erfolgreich ausgeführt, selbst wenn eine oder mehrere Datendateien nicht verfügbar sind. Wenn in einer Datei jedoch massenprotokollierte Änderungen enthalten sind, die im massenprotokollierten Wiederherstellungsmodell erfolgt sind, müssen alle Dateien online sein, damit die Sicherung erfolgreich ausgeführt werden kann.

Einschränkungen hinsichtlich der Parallelität bei Sicherungen

In SQL Server wird ein Onlinesicherungsprozess verwendet, um das Ausführen einer Datenbanksicherung zu ermöglichen, während die Datenbank weiterhin verwendet wird. Während einer Sicherung sind die meisten Vorgänge möglich. So sind z. B. die Anweisungen INSERT, UPDATE oder DELETE bei einem Sicherungsvorgang zulässig. Beim Versuch, einen Sicherungsvorgang zu starten, während eine Datenbankdatei erstellt oder gelöscht wird, wird der Sicherungsvorgang so lange verzögert, bis der Erstellungs- oder Löschvorgang abgeschlossen ist oder das Timeout für die Sicherung erreicht ist.

Folgende Vorgänge können nicht ausgeführt werden, während eine Datenbank oder ein Transaktionsprotokoll gesichert wird:

  • Vorgänge, die die Dateiverwaltung betreffen, z. B. die ALTER DATABASE-Anweisung mit der Option ADD FILE oder REMOVE FILE.

  • Vorgänge zum Verkleinern der Datenbank oder von Dateien. Dazu gehören auch Vorgänge zum automatischen Verkleinern.

  • Wenn Sie versuchen, eine Datenbankdatei während des Sicherungsvorgangs zu erstellen oder zu löschen, tritt beim Erstellungs- oder Löschvorgang ein Fehler auf.

Wenn sich ein Sicherungsvorgang mit einem Dateiverwaltungsvorgang oder einem Verkleinerungsvorgang überschneidet, tritt ein Konflikt auf. Unabhängig davon, welcher am Konflikt beteiligte Vorgang zuerst begonnen hat, wartet der zweite Vorgang auf das Timeout der Sperre, die vom ersten Vorgang festgelegt wurde. (Der Timeoutzeitraum wird durch eine Timeouteinstellung für die Sitzung gesteuert.) Wenn die Sperre während des Timeoutzeitraumes aufgehoben wird, wird der zweite Vorgang fortgesetzt. Wenn das Timeout für die Sperre eintritt, tritt beim zweiten Vorgang ein Fehler auf.