Vollständige Datenbankwiederherstellungen (vollständiges Wiederherstellungsmodell)Complete Database Restores (Full Recovery Model)

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Das Ziel einer vollständigen Datenbankwiederherstellung besteht in der Wiederherstellung der gesamten Datenbank.In a complete database restore, the goal is to restore the whole database. Die gesamte Datenbank ist für die Dauer der Wiederherstellung offline.The whole database is offline for the duration of the restore. 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.Before any part of the database can come online, all data is recovered to a consistent point in which all parts of the database are at the same point in time and no uncommitted transactions exist.

Bei Verwendung des vollständigen Wiederherstellungsmodells müssen Sie nach dem Wiederherstellen der Datensicherung(en) alle nachfolgenden Transaktionsprotokollsicherungen und anschließend die Datenbank wiederherstellen.Under the full recovery model, after you restore your data backup or backups, you must restore all subsequent transaction log backups and then recover the database. Sie können eine Datenbank bis zu einem bestimmten Wiederherstellungspunkt innerhalb einer dieser Protokollsicherungen wiederherstellen.You can restore a database to a specific recovery point within one of these log backups. Der Wiederherstellungspunkt kann einem bestimmten Datum mit einer bestimmten Uhrzeit, einer markierten Transaktion oder einer Protokollsequenznummer (Log Sequence Number, LSN) entsprechen.The recovery point can be a specific date and time, a marked transaction, or a log sequence number (LSN).

Beim Wiederherstellen einer Datenbank sollten Sie vor allem beim vollständigen und massenprotokollierten Wiederherstellungsmodell eine einzelne Wiederherstellungssequenz verwenden.When restoring a database, particularly under the full recovery model or bulk-logged recovery model, you should use a single restore sequence. Eine Wiederherstellungssequenz besteht aus mindestens einem Wiederherstellungsvorgang, mit dessen Hilfe Daten mindestens eine Wiederherstellungsphase durchlaufen.A restore sequence consists of one or more restore operations that move data through one or more of the phases of restore.

Nicht vertrauenswürdigen QuellenUntrusted sources

Vom Anfügen oder Wiederherstellen von Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen wird abgeraten.We recommend that you do not attach or restore databases from unknown or untrusted sources. Diese Datenbanken können bösartigen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQLTransact-SQL -Code ausführt oder Fehler durch Ändern des Schemas oder der physischen Datenbankstruktur erzeugt.These databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. 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.Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a non-production server. Überprüfen Sie auch manuell geschriebenen Code in der Datenbank, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code.Also, examine the user-written code in the database, such as stored procedures or other user-defined code.

Sicherungen von früheren VersionenBackups from earlier versions

Informationen zur Unterstützung von Sicherungskopien früherer SQL ServerSQL Server-Versionen finden Sie im Kapitel RESTORE (Transact-SQL)im Abschnitt „Kompatibilitätsunterstützung“.For information about support for backups from earlier versions of SQL ServerSQL Server, see the "Compatibility Support" section of RESTORE (Transact-SQL).

Wiederherstellen einer Datenbank bis zum Zeitpunkt des FehlersRestoring a Database to the Point of Failure

Zum Wiederherstellen einer Datenbank bis zum Zeitpunkt des Auftretens eines Fehlers werden in der Regel die folgenden grundlegenden Schritte ausgeführt:Typically, recovering a database to the point of failure involves the following basic steps:

  1. Sichern Sie das aktive Transaktionsprotokoll (das Protokollfragment).Back up the active transaction log (known as the tail of the log). Dadurch wird eine Sicherung des Protokollfragments erstellt.This creates a tail-log backup. Wenn das aktive Transaktionsprotokoll nicht verfügbar ist, gehen alle Transaktionen in diesem Teil des Protokolls verloren.If the active transaction log is unavailable, all transactions in that part of the log are lost.

    Wichtig

    Beim massenprotokollierten Wiederherstellungsmodell ist zum Sichern eines Protokolls, das massenprotokollierte Vorgänge enthält, der Zugriff auf alle Datendateien in der Datenbank erforderlich.Under the bulk-logged recovery model, backing up any log that contains bulk-logged operations requires access to all data files in the database. Wenn der Zugriff auf die Datendateien nicht möglich ist, kann das Transaktionsprotokoll nicht gesichert werden.If the data files cannot be accessed, the transaction log cannot be backed up. In diesem Fall müssen Sie alle Änderungen seit der letzten Protokollsicherung erneut manuell vornehmen.In that case, you have to manually redo all changes that were made since the most recent log backup.

    Weitere Informationen finden Sie unter Protokollfragmentsicherungen (SQL Server).For more information, see Tail-Log Backups (SQL Server).

  2. Stellen Sie die letzte vollständige Datenbanksicherung wieder her, ohne die Datenbank selbst wiederherzustellen (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).Restore the most recent full database backup without recovering the database (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 FROM differential_backup_device WITH NORECOVERY).If differential backups exist, restore the most recent one without recovering the database (RESTORE DATABASE database_name FROM differential_backup_device WITH NORECOVERY).

    Durch die Wiederherstellung der neuesten differenziellen Sicherung wird die Anzahl der wiederherzustellenden Protokollsicherungen reduziert.Restoring the most recent differential backup reduces the number of log backups that must be restored.

  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.Starting with the first transaction log backup that was created after the backup you just restored, restore the logs in sequence with NORECOVERY.

  5. Stellen Sie die Datenbank wieder her (RESTORE DATABASE database_name WITH RECOVERY).Recover the database (RESTORE DATABASE database_name WITH RECOVERY). Alternativ kann dieser Schritt mit dem Wiederherstellen der letzten Protokollsicherung kombiniert werden.Alternatively, this step can be combined with restoring the last log backup.

Die folgende Abbildung stellt diese Wiederherstellungssequenz dar:The following illustration shows this restore sequence. Wenn ein Fehler aufgetreten ist (1), wird eine Sicherung des Protokollfragments erstellt (2).After a failure occurs (1), a tail-log backup is created (2). Danach wird die Datenbank bis zu dem Zeitpunkt des Auftretens des Fehlers wiederhergestellt.Next, the database is restored to the point of the failure. Dieser Vorgang umfasst die Wiederherstellung einer Datenbanksicherung, eine nachfolgende differenzielle Sicherung sowie alle Protokollsicherungen nach der differenziellen Sicherung, einschließlich der Sicherung des Protokollfragments.This involves restoring a database backup, a subsequent differential backup, and every log backup taken after the differential backup, including the tail-log backup.

Vollständige Datenbankwiederherstellung bis zum Auftreten des FehlersComplete database restore to the time of a failure

Hinweis

Informationen zum Wiederherstellen einer Datenbanksicherung auf einer anderen Serverinstanz finden Sie unter Kopieren von Datenbanken durch Sichern und Wiederherstellen.When you restore a database backup onto a different server instance, see Copy Databases with Backup and Restore.

Grundlegende Transact-SQL-RESTORE-SyntaxBasic Transact-SQL RESTORE Syntax

Die grundlegende RESTORETransact-SQLTransact-SQL -Syntax für die Wiederherstellungssequenz in der vorangehenden Abbildung sieht folgendermaßen aus:The basic RESTORETransact-SQLTransact-SQL syntax for the restore sequence in the preceding illustration is as follows:

  1. RESTORE DATABASE database FROM full database backup WITH NORECOVERY;RESTORE DATABASE database FROM full database backup WITH NORECOVERY;

  2. RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;

  3. RESTORE LOG database FROM log_backup WITH NORECOVERY;RESTORE LOG database FROM log_backup WITH NORECOVERY;

    Wiederholen Sie diesen Schritt der Protokollwiederherstellung für jede zusätzliche Protokollsicherung.Repeat this restore-log step for each additional log backup.

  4. RESTORE DATABASE database WITH RECOVERY;RESTORE DATABASE database WITH RECOVERY;

Beispiel: Wiederherstellen bis zum Zeitpunkt des Fehlers (Transact-SQL)Example: Recovering to the Point of Failure (Transact-SQL)

Im folgenden Transact-SQLTransact-SQL -Beispiel werden die wesentlichen Optionen in einer Wiederherstellungssequenz veranschaulicht, mit der die Datenbank zum Zeitpunkt des Fehlers wiederhergestellt wird.The following Transact-SQLTransact-SQL example shows the essential options in a restore sequence that restores the database to the point of failure. Im Beispiel wird eine Sicherung des Protokollfragments der Datenbank erstellt.The example creates a tail-log backup of the database. Als Nächstes wird im Beispiel eine vollständige Datenbanksicherung und Protokollsicherung wiederhergestellt. Anschließend wird die Sicherung des Protokollfragments wiederhergestellt.Next, the example restores a full database backup and log backup and then restores the tail-log backup. Im Beispiel wird die Datenbank in einem separaten, abschließenden Schritt wiederhergestellt.The example recovers the database in a separate, final step.

Hinweis

In diesem Beispiel werden eine Datenbanksicherung und eine Protokollsicherung verwendet, die im Abschnitt „Verwenden von Datenbanksicherungen im vollständigen Wiederherstellungsmodell“ in Vollständige Datenbanksicherungen (SQL Server)im Abschnitt „Kompatibilitätsunterstützung“.This example uses a database backup and log backup that is created in the "Using Database Backups Under the Full Recovery Model" section in Full Database Backups (SQL Server). Vor der Datenbanksicherung wurde die Beispieldatenbank AdventureWorks2012AdventureWorks2012 zur Verwendung des vollständigen Wiederherstellungsmodells festgelegt.Before the database backup, the AdventureWorks2012AdventureWorks2012 sample database was set to use the full recovery model.

USE master;  
--Create tail-log backup.  
BACKUP LOG AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'    
   WITH NORECOVERY;   
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2012   
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'   
  WITH FILE=1,   
    NORECOVERY;  
  
--Restore the regular log backup (from backup set 2).  
RESTORE LOG AdventureWorks2012   
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'   
  WITH FILE=2,   
    NORECOVERY;  
  
--Restore the tail-log backup (from backup set 3).  
RESTORE LOG AdventureWorks2012   
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'  
  WITH FILE=3,   
    NORECOVERY;  
GO  
--recover the database:  
RESTORE DATABASE AdventureWorks2012 WITH RECOVERY;  
GO  

Wiederherstellen einer Datenbank bis zu einem Punkt in einer ProtokollsicherungRestoring a Database to a Point Within a Log Backup

Beim vollständigen Wiederherstellungsmodell kann eine vollständige Datenbankwiederherstellung in der Regel bis zu einem Zeitpunkt, einer markierten Transaktion oder einer LSN in einer Protokollsicherung wiederhergestellt werden.Under the full recovery model, a complete database restore can usually be recovered to a point of time, a marked transaction, or an LSN within a log backup. Wenn jedoch beim massenprotokollierten Wiederherstellungsmodell die Protokollsicherung massenprotokollierte Änderungen enthält, ist die Zeitpunktwiederherstellung nicht möglich.However, under the bulk-logged recovery model, if the log backup contains bulk-logged changes, point-in-time recovery is not possible.

Beispielszenarien für ZeitpunktwiederherstellungenSample Point-in-Time Restore Scenarios

Im folgenden Beispiel wird angenommen, dass ein unternehmenswichtiges Datenbanksystem vorliegt, für das täglich um Mitternacht eine vollständige Datenbanksicherung erstellt wird. Eine differenzielle Datenbanksicherung wird von Montag bis Samstag stündlich erstellt, und Transaktionsprotokollsicherungen werden tagsüber alle 10 Minuten erstellt.The following example assumes a mission-critical database system for which a full database backup is created daily at midnight, a differential database backup is created on the hour, Monday through Saturday, and transaction log backups are created every 10 minutes throughout the day. Um die Datenbank in dem Status wiederherzustellen, der am Mittwoch um 5:19 Uhr vorlag,To restore the database to the state is was in at 5:19 A.M. gehen Sie wie folgt vor:Wednesday, do the following:

  1. Stellen Sie die vollständige Datenbanksicherung wieder her, die am Dienstag um Mitternacht erstellt wurde.Restore the full database backup that was created Tuesday at midnight.

  2. Stellen Sie die differenzielle Datenbanksicherung wieder her, die am Donnerstag um 5:00 UhrRestore the differential database backup that was created at 5:00 A.M. erstellt wurde.on Wednesday.

  3. Wenden Sie die Transaktionsprotokollsicherung an, die am Donnerstag um 5:10 UhrApply the transaction log backup that was created at 5:10 A.M. erstellt wurde.on Wednesday.

  4. Wenden Sie die Transaktionsprotokollsicherung an, die am Mittwoch um 5:20 UhrApply the transaction log backup that was created 5:20 A.M. erstellt wurde, und geben Sie dabei an, dass beim Wiederherstellungsprozess ausschließlich Transaktionen angewendet werden sollen, die vor 5:19 Uhr stattfanden.on Wednesday, specifying that the recovery process applies only to transactions that occurred before 5:19 A.M.

Sie können auch folgendermaßen vorgehen, wenn die Datenbank in dem Status von Donnerstag um 3:04 Uhr wiederhergestellt werden soll,Alternatively, if the database needs to be restored to its state at 3:04 A.M. die um 3:00 Uhr erstellte differenzielle Datenbanksicherung jedoch nichtThursday, but the differential database backup that was created at 3:00 A.M. verfügbar ist:Thursday is unavailable, do the following:

  1. Stellen Sie die Datenbanksicherung wieder her, die am Mittwoch um Mitternacht erstellt wurde.Restore the database backup that was created Wednesday at midnight.

  2. Stellen Sie die differenzielle Datenbanksicherung wieder her, die am Donnerstag um 2:00 UhrRestore the differential database backup that was created at 2:00 A.M. erstellt wurden.on Thursday.

  3. Wenden Sie alle Transaktionsprotokollsicherungen an, die am Donnerstag zwischen 2:10 UhrApply all the transaction log backups created from 2:10 A.M. auf 3:00 Uhr geändert.to 3:00 A.M. erstellt wurden.on Thursday.

  4. Wenden Sie die Transaktionsprotokollsicherung an, die am Donnerstag um 3:10 UhrApply the transaction log backup that was created at 3:10 A.M. erstellt wurde, und beenden Sie den Wiederherstellungsprozess um 3:04 Uhr.on Thursday, stopping the recovery process at 3:04 A.M.

Hinweis

Ein Beispiel zum Wiederherstellen eines zu einem bestimmten Zeitpunkt bestehenden Datenbankzustands finden Sie unter Wiederherstellen einer SQL Server-Datenbank zu einem Zeitpunkt (vollständiges Wiederherstellungsmodell)im Abschnitt „Kompatibilitätsunterstützung“.For an example of a point-in-time restore, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

Verwandte AufgabenRelated Tasks

So stellen Sie eine vollständige Datenbanksicherung wieder herTo restore a full database backup

So stellen Sie eine differenzielle Datenbanksicherung wieder herTo restore a differential database backup

So stellen Sie eine Transaktionsprotokollsicherung wieder herTo restore a transaction log backup

So stellen Sie eine Sicherung mithilfe von SQL Server Management Objects (SMO) wieder herTo restore a backup by using SQL Server Management Objects (SMO)

So stellen Sie eine Datenbank bis zu einem Punkt in einer Protokollsicherung wieder herTo restore a database to a point within a log backup

Weitere InformationenSee Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
Anwenden von Transaktionsprotokollsicherungen (SQL Server) Apply Transaction Log Backups (SQL Server)
sp_addumpdevice (Transact-SQL) sp_addumpdevice (Transact-SQL)
Vollständige Datenbanksicherungen (SQL Server) Full Database Backups (SQL Server)
Differenzielle Sicherungen (SQL Server) Differential Backups (SQL Server)
Übersicht über Sicherungen (SQL Server) Backup Overview (SQL Server)
Übersicht über Wiederherstellungsvorgänge (SQL Server)Restore and Recovery Overview (SQL Server)