Ausführen einer vollständigen Datenbankwiederherstellung (vollständiges Wiederherstellungsmodell)

Das Ziel einer vollständigen Datenbankwiederherstellung besteht in der Wiederherstellung der gesamten Datenbank. Die gesamte Datenbank ist für die Dauer der Wiederherstellung offline. Bevor Teile der Datenbank wieder online zur Verfügung gestellt werden können, müssen alle Daten bis zu einem konsistenten Zeitpunkt wiederhergestellt werden. Ein solcher Punkt ist gegeben, wenn für alle Teile der Datenbank derselbe Zeitpunkt gilt und keine Transaktionen ohne Commit vorhanden sind.

Im vollständigen Wiederherstellungsmodell kann die Datenbank bis zu einem bestimmten Zeitpunkt wiederhergestellt werden. Bei diesem Zeitpunkt kann es sich um die neueste verfügbare Sicherung, ein bestimmtes Datum und eine bestimmte Uhrzeit oder aber eine markierte Transaktion handeln.

ms187495.security(de-de,SQL.90).gifSicherheitshinweis:
Es empfiehlt sich nicht, Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anzufügen oder wiederherzustellen. Diese Datenbanken können bösartigen Code enthalten, mit dem möglicherweise unbeabsichtigter Transact-SQL-Code ausgeführt oder Fehler verursacht werden, indem das Schema oder die physikalische Datenbankstruktur geändert wird. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie in der Datenbank auf einem Nichtproduktionsserver DBCC CHECKDB aus, und überprüfen Sie auch den Code der Datenbank, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code.

Wiederherstellen einer vollständigen Datenbank

Zum Wiederherstellen einer Datenbank bis zum Zeitpunkt des Auftretens eines Fehlers werden in der Regel die folgenden grundlegenden Schritte ausgeführt:

  1. Sichern Sie das aktive Transaktionsprotokoll (das Protokollfragment). Dadurch wird eine Sicherung des Prokollfragments erstellt. Wenn das aktive Transaktionsprotokoll nicht verfügbar ist, gehen alle Transaktionen in diesem Teil des Protokolls verloren.
    ms187495.note(de-de,SQL.90).gifWichtig:
    Beim massenprotokollierten Wiederherstellungsmodell ist zum Sichern eines Protokolls, das massenprotokollierte Vorgänge enthält, der Zugriff auf alle Datendateien in der Datenbank erforderlich. Wenn der Zugriff auf die Datendateien nicht möglich ist, kann das Transaktionsprotokoll nicht gesichert werden. In diesem Fall müssen Sie alle Änderungen seit der letzten Protokollsicherung erneut manuell vornehmen.
    Weitere Informationen finden Sie unter [Sicherungen des Protokollfragments](ms179314\(v=sql.90\).md).
  2. Stellen Sie die letzte vollständige Datenbanksicherung wieder her, ohne die Datenbank selbst wiederherzustellen (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
  3. Wenn differenzielle Sicherungen vorhanden sind, stellen Sie die neueste Sicherung wieder her, ohne die Datenbank selbst wiederherzustellen (RESTORE DATABASE database_name WITH NORECOVERY).
  4. Stellen Sie ausgehend von der ersten Transaktionsprotokollsicherung, die Sie nach der soeben wiederhergestellten Sicherung erstellt haben, die Protokolle der Reihe nach mit NORECOVERY wieder her.
  5. Stellen Sie die Datenbank wieder her (RESTORE DATABASE database_name WITH RECOVERY). Alternativ kann dieser Schritt mit dem Wiederherstellen der letzten Protokollsicherung kombiniert werden.
  6. Eine vollständige Datenbankwiederherstellung kann in der Regel bis zu einem bestimmten Zeitpunkt oder zu einer in einer Protokollsicherung markierten Transaktion wiederhergestellt werden. Wenn jedoch beim massenprotokollierten Wiederherstellungsmodell die Protokollsicherung massenprotokollierte Änderungen enthält, ist die Wiederherstellung bis zu einem bestimmten Zeitpunkt nicht möglich. Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank bis zu einem Punkt in einer Sicherung.

Wenn Sie eine Datenbank vollständig wiederherstellen, sollte eine einzige Wiederherstellungssequenz verwendet werden. Im folgenden Beispiel werden die wichtigen Optionen bei einer Wiederherstellungssequenz für die vollständige Datenbankwiederherstellung veranschaulicht, bei der die Datenbank bis zum Auftreten des Fehlers wiederhergestellt wird. Eine Wiederherstellungssequenz besteht aus mindestens einem Wiederherstellungsvorgang, der mindestens eine Wiederherstellungsphase durchläuft. Hierfür unwichtige Syntax und Informationen werden ausgelassen.

Die Datenbank wird wiederhergestellt und es wird ein Rollforward ausgeführt. Mithilfe einer differenziellen Datenbank wird der Zeitaufwand für den Rollforward reduziert. Durch diese Wiederherstellungssequenz soll der Verlust von Daten verhindert werden. Zum Schluss wird eine Sicherung des Protokollfragments wiederhergestellt.

Die grundlegende RESTORE-Syntax für die Wiederherstellungssequenz lautet:

  1. RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
  2. RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
  3. RESTORE LOG database FROM log_backup WITH NORECOVERY;
    Wiederholen Sie diesen Schritt der Protokollwiederherstellung für jede zusätzliche Protokollsicherung.
  4. RESTORE DATABASE database WITH RECOVERY;

Beispiel

Für das folgende Beispiel wurde die AdventureWorks-Beispieldatenbank auf die Verwendung des vollständigen Wiederherstellungsmodells festgelegt, bevor die Datenbank gesichert wurde. Im Beispiel wird eine Sicherung des Protokollfragments der AdventureWorks-Datenbank erstellt. Als Nächstes wird im Beispiel eine frühere vollständige Datenbanksicherung und Protokollsicherung wiederhergestellt. Anschließend wird die Sicherung des Protokollfragments im Beispiel wiederhergestellt. Im Beispiel wird die Datenbank in einem separaten, abschließenden Schritt wiederhergestellt.

ms187495.note(de-de,SQL.90).gifHinweis:
In diesem Beispiel wird eine Datenbanksicherung und eine Protokollsicherung verwendet, die im Abschnitt "Verwenden von Datenbanksicherungen im vollständigen Wiederherstellungsmodell" in Vollständige Datenbanksicherungen erstellt werden.

Das Beispiel beginnt mit einer ALTER DATABASE-Anweisung, mit der das Wiederherstellungsmodell auf FULL festgelegt wird.

USE master;
--Make sure the database is using the full recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY FULL;
GO
--Create tail-log backup.
BACKUP LOG AdventureWorks 
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak''Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH NORECOVERY; GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=1, 
    NORECOVERY;

--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=2, 
    NORECOVERY;

--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
  WITH FILE=3, 
    NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO

Wiederherstellen bis zum Zeitpunkt des Fehlers

So stellen Sie eine vollständige Datenbanksicherung wieder her

So stellen Sie eine differenzielle Datenbanksicherung wieder her

So stellen Sie eine Transaktionsprotokollsicherung wieder her

Nachdem Sie Ihre Datensicherung(en) wiederherstellen, müssen Sie alle späteren Transaktionsprotokollsicherungen und anschließend die Datenbank wiederherstellen.

So stellen Sie eine Sicherung mithilfe von SQL Server Management Objects (SMO) wieder her

Wiederherstellen bis zu einem bestimmten Zeitpunkt

Im vollständigen Wiederherstellungsmodell können Datenbanken bis zu einem bestimmten Zeitpunkt innerhalb einer Protokollsicherung wiederhergestellt werden. Der Zeitpunkt kann einem bestimmten Datum mit einer bestimmten Uhrzeit, einer markierten Transaktion oder einer Protokollsequenznummer (Log Sequence Number oder LSN) entsprechen. Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank bis zu einem Punkt in einer Sicherung.

Unterstützung für Sicherungen aus früheren Versionen von SQL Server

In SQL Server 2005 können Sie eine Datenbanksicherung wiederherstellen, die mit SQL Server, Version 7.0, SQL Server 2000 oder SQL Server 2005 erstellt wird. Sicherungen von master, model und msdb, die mit SQL Server 7.0 oder SQL Server 2000 erstellt werden, können nicht mit SQL Server 2005 wiederhergestellt werden. Außerdem können SQL Server 7.0-Protokollsicherungen, die Indexerstellungsvorgänge enthalten, nicht in SQL Server 2000 oder SQL Server 2005 wiederhergestellt werden.

In SQL Server 2005 wird ein anderer Standardpfad als in früheren Versionen von SQL Server verwendet. Wenn eine am Standardspeicherort von SQL Server 7.0 oder SQL Server 2000 erstellte Datenbank anhand von Sicherungen wiederhergestellt werden soll, müssen Sie deshalb die Option MOVE verwenden. Informationen zum neuen Standardpfad finden Sie unter Dateispeicherorte für Standard- und benannte Instanzen von SQL Server 2005.

ms187495.note(de-de,SQL.90).gifHinweis:
Datenbanksicherungen, die mithilfe von SQL Server 6.5 oder früher erstellt werden, weisen ein inkompatibles Format auf und können in SQL Server 2005 nicht wiederhergestellt werden. Informationen zum Aktualisieren einer mit SQL Server 6.5 oder einer früheren Version als SQL Server 2005 erstellten Datenbank finden Sie unter Kopieren von Datenbanken von SQL Server 6.5 oder früheren Versionen.

Siehe auch

Konzepte

Sichern beim massenprotokollierten Wiederherstellungsmodell
Sichern beim vollständigen Wiederherstellungsmodell
Differenzielle Datenbanksicherungen
Vollständige Datenbanksicherungen
Reduzieren der Wiederherstellungszeit beim Wiederherstellen einer Datenbank
Grundlegendes zur Funktionsweise der Wiederherstellung von Sicherungen in SQL Server
Verwenden von Transaktionsprotokollsicherungen

Andere Ressourcen

Verwenden von Wiederherstellungssequenzen für SQL Server-Datenbanken

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

17. Juli 2006

Neuer Inhalt:
  • Zusätzlicher Sicherheitshinweis.