Grundlegendes zur Wiederherstellungsleistung in SQL Server
Die Wiederherstellungsleistung bezieht sich im Wesentlichen auf die Wiederherstellung nach einem Systemabsturz und nicht auf die Wiederherstellung der Datenbank aus einer Sicherung. Die Wiederherstellung der Datenbank nach dem Wiederherstellen einer Sicherung kann jedoch ebenfalls optimiert werden.
Die Wiederherstellungszeit wird durch den Arbeitsumfang seit dem letzten Prüfpunkt und den Arbeitsumfang aller aktiven Transaktionen zum Zeitpunkt des Datenverlustes bestimmt. SQL Server verwendet die Konfigurationsoption recovery interval, um die ungefähre Höchstanzahl der Minuten pro Datenbank festzulegen, die SQL Server zum Wiederherstellen von Datenbanken benötigt. Die recovery interval-Einstellung steuert die Häufigkeit von Prüfpunkten. Bei einem System zur Onlinetransaktionsverarbeitung (Online Transaction Processing, OLTP), das kurze Transaktionen verwendet, ist recovery interval der wichtigste Faktor für die Bestimmung der Wiederherstellungszeit.
Nach der Installation wird recovery interval von SQL Server auf Null festgelegt. Solange die recovery interval-Einstellung auf den Standardwert festgelegt ist und keine umfangreichen Transaktionen vorhanden sind, sollte die Wiederherstellung für die einzelnen Datenbanken nicht länger als 1 Minute dauern. Wenn zum Zeitpunkt des Datenverlustes umfangreiche Transaktionen aktiv waren, wird die Wiederherstellungszeit bei der Wiederherstellung gesicherter Daten dadurch bestimmt, wie lange das Rollback dieser Transaktionen dauert. In SQL Server 2005 und höheren Versionen ist die Datenbank jedoch in der Rollbackphase einer Wiederherstellung nach einem Systemabsturz oder einem Datenbankspiegelungs-Failover verfügbar. Dieses Feature wird als schnelle Wiederherstellung bezeichnet.
Wenn die Wiederherstellung einer Datenbank routinemäßig wesentlich länger als 1 Minute dauert, recovery interval auf Null festgelegt ist und für keine umfangreichen Transaktionen ein Rollback ausgeführt werden muss, sollten Sie sich möglicherweise an Ihren bevorzugten Anbieter für technischen Support wenden, um das Problem der Wiederherstellungsleistung zu beheben.
Die Wiederherstellung meldet den Fortschritt basierend auf den virtuellen Protokolldateien für eine Datenbank. Zu Beginn der Wiederherstellung wird das Protokoll seit dem letzten Prüfpunkt analysiert und überprüft. Auf der Grundlage der Analysephase schätzt die Wiederherstellung, welcher Protokollanteil während der Wiederherstellung gelesen wird. Anhand des Umfangs des bereits gelesenen Protokolls wird der Wiederherstellungsfortschritt berechnet.
Wenn die recovery interval-Einstellung vom Standardwert in einen anderen Wert geändert wird, nimmt die Datenbankwiederherstellung das Vielfache dieses Werts in Anspruch. Wenn z. B. recovery interval auf 10 geändert wird, würde die Wiederherstellung im Vergleich zum Standardwert Null für recovery interval etwa die zehnfache Zeit in Anspruch nehmen.
Verwenden Sie beim Vergrößern des Protokolls größere statt kleinere Inkremente, um eine kürzere Startzeit für SQL Server sicherzustellen. Je kleiner die Protokollinkremente sind, desto mehr Zeit benötigt SQL Server, um sie zu initialisieren.
Lassen Sie den Server beim Wiederherstellen nach einem Wiederherstellungsvorgang den Rollbackvorgang abschließen, wenn eine umfangreiche Transaktion abgebrochen wurde. Die Beendigung des Serverprozesses während des Rollbacks einer umfangreichen Transaktion bedeutet eine lange Wiederherstellungsphase. Wenn Sie sich wundern, warum der Rollbackprozess so lange dauert, bitten Sie den Systemadministrator um eine Bestätigung, dass auf dem Server ein Vorgang im Gang ist.
Sollte der Server bei einer umfangreichen Transaktion ausfallen, beginnt SQL Server mit dem Wiederherstellungsprozess. In diesem Fall wird die Wiederherstellung beschleunigt, da die Datenbank in der Rollbackphase verfügbar ist.
Möglichkeiten zum Reduzieren der Wiederherstellungszeit beim Wiederherstellen von Daten aus Sicherungen unter dem vollständigen Wiederherstellungsmodell finden Sie unter Reduzieren der Wiederherstellungszeit beim Wiederherstellen einer Datenbank.