Sichern beim vollständigen Wiederherstellungsmodell
Das vollständige Wiederherstellungsmodell verwendet Protokollsicherungen, um in vielfältigen Fehlerszenarien den Verlust von Daten zu verhindern. Sichern und Wiederherstellen des Transaktionsprotokolls (Protokollsicherungen) ist erforderlich. Der Vorteil von Protokollsicherungen besteht darin, dass Sie mit diesen eine Datenbank zu jedem beliebigen Zeitpunkt wiederherstellen können, der in einer Protokollsicherung enthalten ist (Zeitpunktwiederherstellung). Sie können eine Reihe von Protokollsicherungen verwenden, um einen Rollforward für eine Datenbank bis zu einem in einer der Protokollsicherungen enthaltenen Zeitpunkt auszuführen. Beachten Sie, dass Sie jede vollständige Sicherung um eine Reihe differenzieller Sicherungen der gleichen Daten ergänzen können, um die Wiederherstellungszeit zu verringern.
Angenommen, Sie können das aktive Protokoll nach Auftreten eines Notfalls sichern, dann können Sie die Datenbank ohne Datenverlust bis zu dem Punkt wiederherstellen, an dem der Fehler auftrat. Die Nachteile der Verwendung von Protokollsicherungen bestehen darin, dass dafür Speicherplatz erforderlich ist und die Wiederherstellungsdauer und die Komplexität erhöht werden.
Hinweis |
---|
Wenn die Vorteile der Verwendung von Protokollsicherungen nicht die Kosten der Verwaltung der Sicherungen rechtfertigen, wird empfohlen, dass Sie das einfache Wiederherstellungsmodell verwenden. |
Bei einer Datenbank, die das vollständige Wiederherstellungsmodell regelmäßig verwendet, können Sie bestimmte Massenvorgänge optimieren, indem Sie vorübergehend das massenprotokollierte Wiederherstellungsmodell verwenden. Das massenprotokollierte Wiederherstellungsmodell unterliegt jedoch einigen Einschränkungen, durch die es für die alltäglichen Vorgänge ungeeignet ist. Weitere Informationen finden Sie unter Sichern beim massenprotokollierten Wiederherstellungsmodell.
Beispiel einer Sicherungsstrategie
In der folgenden Abbildung wird die einfachste Sicherungsstrategie im vollständigen Wiederherstellungsmodell veranschaulicht. In der Abbildung wurden eine vollständige Datenbanksicherung (Db_1) und zwei routinemäßige Protokollsicherungen (Log_1 und Log_2) vorgenommen. Einige Zeit nach der Log_2-Protokollsicherung ist es in der Datenbank zu einem Datenverlust gekommen. Vor dem Wiederherstellen dieser drei Sicherungen muss der Datenbankadministrator das aktive Protokoll (das Protokollfragment) sichern. Der Datenbankadministrator stellt dann Db_1, Log_1 und Log_2 ohne Wiederherstellung der Datenbank wieder her. Dann stellt der Datenbankadministrator die Sicherung des Protokollfragments (das Protokollende) wieder her. Dadurch wird die Datenbank bis zum Zeitpunkt des Fehlers mit allen Daten wiederhergestellt.
Weitere Informationen finden Sie unter Vollständige Datenbanksicherungen und Verwenden von Transaktionsprotokollsicherungen.
Minimieren des Datenverlusts
Nachdem die erste vollständige Datenbanksicherung abgeschlossen ist und regelmäßige Protokollsicherungen beginnen, beschränkt sich der potenzielle Datenverlust auf den Zeitpunkt zwischen einer Beschädigung der Datenbank und der letzten regelmäßigen Protokollsicherung. Deshalb empfiehlt es sich, Protokollsicherungen so häufig durchzuführen, dass ein möglicher Datenverlust die akzeptablen Ausmaße, die sich durch die Geschäftsanforderungen ergeben, nicht überschreitet.
In der folgenden Abbildung wird eine Sicherungsstrategie veranschaulicht, in der vollständige Datenbanksicherungen und Protokollsicherungen durch differenzielle Datenbanksicherungen ergänzt werden. Durch Transaktionsprotokollsicherungen wird die Gefahr des Datenverlusts auf den Zeitraum nach der letzten Protokollsicherung, t14, reduziert. Mithilfe von drei differenziellen Sicherungen wird die Anzahl von Transaktionsprotokollen reduziert, die im Fall eines Fehlers wiederhergestellt werden müssten. Die dritte differenzielle Sicherung ist groß genug, sodass die nächste Sicherung eine vollständige Datenbanksicherung darstellt. Damit wird eine neue differenzielle Basis eingerichtet.
Vor der ersten Datenbanksicherung in dieser Abbildung besteht für die Datenbank die Gefahr von Datenverlust (vom Zeitpunkt t0 bis zum Zeitpunkt t1). Danach wird das Risiko des Datenverlusts mithilfe routinemäßiger Protokollsicherungen auf die Änderungen reduziert, die nach der letzten Protokollsicherung (in dieser Abbildung zum Zeitpunkt t14) vorgenommen wurden. Im Fall eines Fehlers nach der letzten Sicherung versucht der Datenbankadministrator, das Protokollfragment (das Protokoll, das noch nicht gesichert wurde) zu sichern. Wenn die Sicherung des Protokollfragments erfolgreich war, kann der Datenbankadministrator einen Datenverlust durch die Wiederherstellung der Datenbank bis zum Zeitpunkt des Fehlers vermeiden.
Informationen zu differenziellen Datenbanksicherungen finden Sie unter Verwenden von differenziellen Sicherungen.
Massenvorgänge und das vollständige Wiederherstellungsmodell
Durch das Protokollieren aller Vorgänge (einschließlich Massenvorgängen wie SELECT INTO, CREATE INDEX und dem Massenladen von Daten) ermöglicht das vollständige Wiederherstellungsmodell das Wiederherstellen einer Datenbank bis zum Zeitpunkt des Fehlers oder zu bis einem früheren Zeitpunkt (die sogenannte Zeitpunktwiederherstellung).
Viele Benutzer wechseln vorübergehend vom vollständigen Wiederherstellungsmodell zum massenprotokollierten Wiederherstellungsmodell, wenn das Massenladen von Daten und steigende Leistung das Risiko möglicher Datenverluste aufwiegt. Durch das massenprotokollierte Wiederherstellungsmodell werden Massenvorgänge minimal protokolliert, wobei allerdings andere Transaktionen vollständig protokolliert werden. Weitere Informationen zum massenprotokollierten Wiederherstellungsmodell finden Sie unter Sichern beim massenprotokollierten Wiederherstellungsmodell.
Hinweis |
---|
In SQL Server 2005 und höheren Versionen ist die Datenbankoption select into/bulkcopy von sp_dboption nie erforderlich und sollte stets vermieden werden. Sie sollten stattdessen ALTER DATABASE verwenden. Die gespeicherte Prozedur sp_dboption wird in einer zukünftigen Version von SQL Server entfernt. |
Verwenden von Sicherungen zum Wiederherstellen einer Datenbank
Das Wiederherstellen einer Datenbank erfordert eine Sequenz von Wiederherstellungsvorgängen (eine Wiederherstellungssequenz). Eine Wiederherstellungssequenz beginnt mit der Wiederherstellung von mindestens einer vollständigen Sicherung, der optional eine entsprechende differenzielle Sicherung folgt.
Jede vollständige und differenzielle Sicherung enthält gerade ausreichend Protokolldatensätze, um sie zur Wiederherstellung der Datenbank verwenden zu können. Allerdings werden Sie üblicherweise die nachfolgenden Protokollsicherungen nacheinander wiederherstellen wollen, wobei zuletzt das Protokollfragment wiederhergestellt wird, sofern ein solches verfügbar ist. Deshalb müssen Sie vor dem Starten der Wiederherstellung einer Datenbank eine Protokollfragmentsicherung erstellen. Mit der Protokollfragmentsicherung können Sie die Datenbank bis zum Auftreten eines Fehlers wiederherstellen. Wenn die letzte Protokollsicherung wiederhergestellt ist, müssen Sie die Datenbank wiederherstellen.
Hinweis |
---|
Im vollständigen Wiederherstellungsmodell oder im massenprotokollierten Wiederherstellungsmodell wird in SQL Server 2005 Enterprise Edition und höheren Versionen das Wiederherstellen von Dateien oder Seiten oder von beidem unterstützt, während eine Datenbank online ist. Dies wird als Onlinewiederherstellung bezeichnet. Die RESTORE-Syntax zur Wiederherstellung der Dateien und Seiten ist dieselbe, unabhängig davon, ob die Datenbank offline oder online ist. |
Weitere Informationen finden Sie unter Übersicht über Wiederherstellungsvorgänge (SQL Server).
Siehe auch