Steuern des Erstellens von hinzugefügten Dateien während eines Rollforwards

Im Allgemeinen werden Änderungen an Dateien und Dateigruppen nach einer vollständigen Sicherung transparent behandelt. Wenn einer Datenbank nach der letzten Sicherung der Dateigruppe eine Datei hinzugefügt wird, sollten Sie beim Wiederherstellen der Datenbank das Wiederherstellen zulassen. Dies ist die einfachste Vorgehensweise, um alle Dateien in der wiederhergestellten Datenbank neu zu erstellen. Es kann jedoch sein, dass unbeschädigte, schreibgeschützte Dateien unnötigerweise neu erstellt werden. Die Wiederherstellungsleistung kann bei der Behebung eines bekannten, isolierten Problems optimiert werden kann, indem nur die Dateien wiederhergestellt werden, in denen das Problem auftritt.

HinweisHinweis

Wenn Sie eine Sicherung wiederherstellen, die Dateien enthält, für die mit SQL Server Database Engine (Datenbankmodul) erwartet wird, dass sie gelöscht werden, wird das Kopieren der Dateien und die Wiederholungsphasen für diese Dateien von SQL Server Database Engine (Datenbankmodul) ausgelassen. Informationen zu diesen Phasen finden Sie unter Grundlegendes zur Funktionsweise der Wiederherstellung von Sicherungen in SQL Server.

Ob durch die Wiederherstellung eine Datei erstellt wird, hängt davon ab, ob Sie wie folgt Dateien oder Seiten in einer RESTORE DATABASE-Anweisung angeben:

  • Falls keine spezifischen Dateien oder Seiten angegeben werden

    Dies ist ein typisches Szenario. Wenn ein Protokolleintrag vorhanden ist, mit dem der Datenbank eine Datei hinzugefügt wird, wird die Datei automatisch von der Wiederherstellung erstellt und der Rollforwardgruppe hinzugefügt. Das genaue Verhalten hängt davon ab, ob Sie Dateigruppen in der RESTORE DATABASE-Anweisung angeben. Falls Sie keine Dateigruppe angeben, werden alle neuen Dateien erstellt und der Rollforwardgruppe hinzugefügt. Wenn Sie Dateigruppen angeben, wird nur eine neue Datei erstellt und der Rollforwardgruppe hinzugefügt, falls die Datei einer angegebenen Dateigruppe angehört.

    Bewährte Methode: Für die meisten Wiederherstellungen sollten Sie das Auflisten spezieller Dateien vermeiden, damit von protokollierten Transaktionen erstellte Dateien automatisch neu erstellt werden können.

  • Falls spezifische Dateien oder Seiten angegeben werden

    Durch das Auflisten spezifischer Dateien oder Seiten in der RESTORE DATABASE-Anweisung wird die genaue Rollforwardgruppe definiert. Wenn Sie Dateien oder Seiten auflisten, hält sich die Wiederherstellung genau an Ihre Anweisungen und stellt nur diese Elemente wieder her.

    Für Dateien, die nicht aufgelistet sind, wird davon ausgegangen, dass sie in Ordnung sind. Sie werden deshalb nicht vom Protokoll erstellt. Wenn Sie deshalb eine Protokollsicherung wiederherstellen, die einen Vorgang zum Hinzufügen einer Datei enthält, müssen Sie den Namen der hinzugefügten Datei in der RESTORE-Anweisung angeben.

Im übrigen Teil dieses Themas wird beschrieben, wie Sie Dateien, die Vorgänge zum Hinzufügen einer Datei enthalten, identifizieren, und wie Sie sicherstellen, dass diese Dateien während der Wiederherstellungssequenz wiederhergestellt werden.

Identifizieren der Protokolldatei, die einen Vorgang zum Hinzufügen einer Datei enthält

Sie können wie folgt die Protokolldatei identifizieren, die einen Vorgang zum Hinzufügen eines Vorgangs enthält:

  • Sie können die Dateierstellungs-LSN (create_lsn) verwenden. Diese ist in den Katalogsichten sys.database_files und sys.master_files vorhanden.

  • Informationen zum Dateiinhalt von Sicherungen erhalten Sie in den Tabellen mit Sicherungsverläufen in msdb oder mithilfe der RESTORE FILELISTONLY-Anweisung. Weitere Informationen finden Sie unter RESTORE FILELISTONLY (Transact-SQL).

Wiederherstellen von Dateien oder Seiten ohne eine vollständige Sicherung

Sie können eine Dateiliste, eine Seitenliste oder eine Dateigruppe in einer Protokollwiederherstellung oder einer differenziellen Wiederherstellung angeben. Auf diese Weise können Sie Dateien oder Seiten wiederherstellen, für die keine vollständige Datenbanksicherung vorhanden ist. Das Wiederherstellen einer Datei oder Seite anhand einer differenziellen Sicherung oder einer Protokollsicherung ist die Ausnahme zur Regel, dass eine Wiederherstellungssequenz mit einer vollständigen Sicherung beginnen muss.

Dies ist die grundlegende Syntax zum Wiederherstellen von einer differenziellen Dateisicherung:

RESTORE DATABASE database_name <file_filegroup_page_list> FROM <differential backup>

Dies ist die grundlegende Syntax zum Wiederherstellen von einer Protokollsicherung:

RESTORE LOG database_name <file_filegroup_page_list> FROM <log backup>