Sicherungen des Protokollfragments
Dieses Thema ist nur für Datenbanken relevant, für die das vollständige oder massenprotokollierte Wiederherstellungsmodell verwendet wird.
In den meisten Fällen ist es bei Verwendung des vollständigen oder des massenprotokollierten Wiederherstellungsmodells in SQL Server 2005 und späteren Versionen erforderlich, das Protokollfragment zu sichern, um die Protokolldatensätze aufzuzeichnen, die noch nicht gesichert wurden. Eine Protokollsicherung des Fragments im Protokoll, die unmittelbar vor einem Wiederherstellungsvorgang erstellt wurde, wird als Sicherung des Protokollfragments bezeichnet.
In SQL Server 2005 und späteren Versionen ist es normalerweise erforderlich, eine Sicherung des Protokollfragments auszuführen, bevor die Wiederherstellung einer Datenbank gestartet wird. Durch die Sicherung des Protokollfragments wird Datenverlust verhindert und die Protokollkette intakt gehalten. Wenn Sie eine Datenbank bis zum Zeitpunkt des Fehlers wiederherstellen, ist die Sicherung des Protokollfragments im Wiederherstellungsplan die letzte relevante Sicherung. Wenn Sie das Protokollfragment nicht sichern können, kann eine Datenbank nur bis zum Ende der letzten Sicherung wiederhergestellt werden, die vor dem Fehler erstellt wurde.
Nicht für alle Wiederherstellungsszenarien ist eine Sicherung des Protokollfragments erforderlich. Es ist keine Sicherung des Protokollfragments erforderlich, wenn der Wiederherstellungspunkt in einer früheren Protokollsicherung enthalten ist oder wenn Sie die Datenbank verschieben oder ersetzen (überschreiben) und sie nicht für einen Zeitpunkt nach der letzten Sicherung wiederherstellen müssen. Wenn die Protokolldateien beschädigt sind und keine Sicherung des Protokollfragments erstellt werden kann, müssen Sie zudem die Datenbank ohne Verwendung einer Sicherung des Protokollfragments wiederherstellen. Dabei gehen alle Transaktionen verloren, die nach der letzten Protokollsicherung ausgeführt wurden. Weitere Informationen finden Sie im Folgenden unter "Wiederherstellen ohne Verwendung einer Sicherung des Protokollfragments".
Sichern des Protokollfragments
Wie jede Protokollsicherung wird auch eine Sicherung des Protokollfragments mit der BACKUP LOG-Anweisung ausgeführt. Für folgende Situationen wird empfohlen, eine Sicherung des Protokollfragments auszuführen:
Wenn die Datenbank online ist und Sie einen Wiederherstellungsvorgang für die Datenbank ausführen möchten, sollten Sie vor dem Starten des Wiederherstellungsvorgangs das Protokollfragment mithilfe von WITH NORECOVERY sichern:
BACKUP LOG database_name TO <backup_device> WITH NORECOVERY
Hinweis Damit ein Fehler vermieden wird, ist die Option NORECOVERY erforderlich.
Wenn die Datenbank offline ist und nicht gestartet wird.
Versuchen Sie, eine Sicherung des Protokollfragments zu erstellen. Da während dieser Zeit keine Transaktionen auftreten können, kann WITH NORECOVERY optional verwendet werden. Wenn die Datenbank beschädigt ist, verwenden Sie WITH CONTINUE_AFTER_ERROR wie folgt:
BACKUP LOG database_name TO <backup_device> WITH CONTINUE_AFTER_ERROR
Wenn die Datenbank beschädigt ist, sie beispielsweise nicht gestartet wird, verläuft die Sicherung des Protokollfragments nur dann erfolgreich, wenn die Protokolldateien unbeschädigt sind, die Datenbank sich in einem Zustand befindet, in dem Protokollfragmentsicherungen unterstützt werden, und wenn die Datenbank keine massenprotokollierten Änderungen enthält.
In der folgenden Tabelle sind diese Optionen zusammengefasst.
Option BACKUP LOG |
Kommentare |
---|---|
NORECOVERY |
Verwenden Sie NORECOVERY immer dann, wenn Sie vorhaben, einen Wiederherstellungsvorgang in der Datenbank fortzusetzen. Mit NORECOVERY wird die Datenbank in den Wiederherstellungszustand versetzt. Damit wird sichergestellt, dass sich die Datenbank nach der Sicherung des Protokollfragments nicht ändert. Das Protokoll wird abgeschnitten, es sei denn, die NO_TRUNCATE-Option oder COPY_ONLY-Option ist ebenfalls angegeben.
Wichtig
Es wird empfohlen, die Verwendung von NO_TRUNCATE zu vermeiden, es sei denn, die Datenbank ist beschädigt.
|
CONTINUE_AFTER_ERROR |
Verwenden Sie CONTINUE_AFTER_ERROR nur dann, wenn Sie das Fragment einer beschädigten Datenbank sichern.
Hinweis
Wenn Sie das Protokollfragment in einer beschädigten Datenbank sichern, sind einige der Metadaten, die normalerweise in Protokollsicherungen erfasst werden, eventuell nicht verfügbar. Weitere Informationen finden Sie nachstehend unter "Sicherungen des Protokollfragments mit unvollständigen Sicherungsmetadaten".
|
So erstellen Sie eine Transaktionsprotokollsicherung bei beschädigter Datenbank
Sicherungen des Protokollfragments mit unvollständigen Sicherungsmetadaten
Eine Protokollfragmentsicherung erfasst das Protokollfragment selbst dann, wenn die Datenbank offline geschaltet oder beschädigt ist oder wenn Datendateien fehlen. Dies kann zu unvollständigen Metadaten aus den Wiederherstellungsinformationsbefehlen und aus msdb führen. In diesem Fall sind jedoch nur die Metadaten unvollständig; das erfasste Protokoll ist vollständig und kann verwendet werden.
Enthält eine Sicherung des Protokollfragments unvollständige Metadaten, wird der Eintrag has_incomplete_metadata in der backupset-Tabelle auf 1 festgelegt. Auch in der Ausgabe von RESTORE HEADERONLY ist HasIncompleteMetadata auf 1 festgelegt.
Wenn die Metadaten in einer Sicherung des Protokollfragments unvollständig sind, fehlt in der backupfilegroup-Tabelle ein Großteil der Informationen zu den Dateigruppen zum Zeitpunkt der Sicherung des Protokollfragments. Die meisten Spalten der backupfilegroup-Tabelle sind dann NULL, und nur die folgenden Spalten sind dann sinnvoll:
backup_set_id
filegroup_id
type
type_desc
is_readonly
Wiederherstellen ohne Verwendung einer Sicherung des Protokollfragments
In den folgenden Wiederherstellungsszenarien ist keine Sicherung des Protokollfragments erforderlich:
Wiederherstellen einer Datenbank bis zu einem Zeitpunkt, der in einer früheren Protokollsicherung enthalten ist.
Eine Protokollfragmentsicherung ist unnötig, wenn Sie eine Datenbank wiederherstellen und in jeder RESTORE-Anweisung der Wiederherstellungssequenz die Option STOPAT, STOPATMARK oder STOPBEFOREMARK angeben.
So stellen Sie eine Datenbank bis zu einem früheren Zeitpunkt wieder her
Informationen zum Verwenden von Transact-SQL, um eine Wiederherstellung bis zu einem bestimmten Zeitpunkt auszuführen, finden Sie unter Vorgehensweise: Wiederherstellen bis zu einem bestimmten Zeitpunkt (Transact-SQL), Wiederherstellen bis zu einer markierten Transaktion oder Wiederherstellen zu einer Protokollfolgenummer (LSN).
Informationen zum Verwenden von SQL Server Management Studio finden Sie unter Vorgehensweise: Wiederherstellen bis zu einem bestimmten Zeitpunkt (SQL Server Management Studio) oder Vorgehensweise: Wiederherstellen einer Datenbank bis zu einer markierten Transaktion (SQL Server Management Studio).
Wiederherstellen einer Kopie einer Datenbank an einem neuen Speicherort
Wenn Sie eine Datenbank wiederherstellen, ist die Verwendung desselben Datenbanknamens nur dann möglich, wenn Sie die Datenbank auf einer anderen Serverinstanz wiederherstellen, beispielsweise wenn Sie eine Spiegeldatenbank für die Datenbankspiegelung oder eine sekundäre Datenbank für den Protokollversand erstellen. Wenn Sie eine Datenbank auf dieselbe Serverinstanz verschieben, müssen Sie einen neuen Namen für die Datenbank angeben.
So stellen Sie eine Datenbank an einem neuen Speicherort wieder her
Bei Verwendung von Transact-SQL geben Sie in jeder RESTORE-Anweisung der Wiederherstellungssequenz die Option MOVE an. Weitere Informationen finden Sie unter Vorgehensweise: Wiederherstellen einer Datenbank an einem neuen Speicherort und unter einem neuen Namen (Transact-SQL) oder Vorgehensweise: Wiederherstellen von Dateien an einem neuen Speicherort (Transact-SQL).
Bei Verwendung von SQL Server Management Studio geben Sie den neuen Speicherort der einzelnen Dateien im Feld Wiederherstellen als von Datenbank wiederherstellen (Seite Optionen) an. Weitere Informationen finden Sie unter Vorgehensweise: Wiederherstellen einer Datenbanksicherung (SQL Server Management Studio).
Vollständiges Ersetzen (Überschreiben) der Datenbank
Vorsicht Die Wiederherstellung mit der Option REPLACE sollte nur in Ausnahmefällen und von erfahrenen Datenbankadministratoren – und auch dann nur nach sorgfältiger Überlegung – verwendet werden. Weitere Informationen finden Sie unter Verwenden der Option REPLACE.
So ersetzen Sie eine Datenbank
Bei Verwendung von Transact-SQL geben Sie die Option REPLACE in Ihren RESTORE-Anweisungen an.
Bei Verwendung von SQL Server Management Studio geben Sie den neuen Speicherort der einzelnen Dateien im Feld Wiederherstellen als von Datenbank wiederherstellen (Seite Optionen) an. Weitere Informationen finden Sie unter Vorgehensweise: Wiederherstellen einer Datenbanksicherung (SQL Server Management Studio).
Siehe auch
Verweis
Konzepte
Änderungsverlauf
Aktualisierter Inhalt |
---|
Der Abschnitt "Sichern des Protokollfragments" wurde aktualisiert, um Informationen zum Durchführen einer Protokollfragmentsicherung, wenn die Datenbank offline ist und nicht gestartet wird, zu korrigieren. |