Was nützt die Wiederherstellung des Headers nur bei der Durchführung einer Sicherung?

10

Wenn ich meine Backups mit der folgenden Abfrage überwache:

SELECT      command, percent_complete,
            'elapsed' = total_elapsed_time / 60000.0,
            'remaining' = estimated_completion_time / 60000.0
FROM        sys.dm_exec_requests
WHERE       command like 'BACKUP%'
or command like 'RESTORE%'

Ich stelle fest, dass SQL Server vor der Sicherung nur einen Wiederherstellungsheader und dann die Sicherung durchführt.

Ich habe mich gefragt, wozu es gut ist und ob die Ausführungszeit irgendwie verkürzt werden kann. Es scheint länger zu dauern als die eigentliche Sicherung.

Nicolas de Fontenay
quelle

Antworten:

7

Ich stelle fest, dass SQL Server vor der Sicherung nur einen Wiederherstellungsheader und dann die Sicherung durchführt.

Dies kann Teil von Wiederherstellungsschritten sein, die intern vom SQL Server ausgeführt werden.

Sie können die Wiederherstellungsphasen mit untersuchen DBCC TRACEON(3604, 3605, 3004);. Verwenden Sie es nur zu Schulungszwecken auf einem NON PROD-Server.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Wie Sie oben sehen können, gibt es im Wesentlichen drei Hauptphasen der Wiederherstellung: Datenkopieren, Rückgängigmachen und Wiederherstellen sowie andere Unterphasen, in denen der Sicherungssatz geöffnet und geladen wird.

Es scheint länger zu dauern als die eigentliche Sicherung.

Um die Wiederherstellungszeit zu verbessern, sollten Sie

  • Aktivieren Sie die sofortige Initialisierung von Dateien.
  • Verwenden Sie T-SQL und stellen Sie with REPLACEeine vorhandene Datenbank wieder her, anstatt sie zu löschen und wiederherzustellen.
  • Stellen Sie sicher, dass Sie msdb ordnungsgemäß warten.
  • Suchen Sie nach VLFs. Je mehr VLFs vorhanden sind, desto länger ist die Wiederherstellungszeit.

Siehe Babysitting für eine langsame Sicherung oder Wiederherstellung durch @AaronBertrand .

Kin Shah
quelle
6

RESTORE HEADERONLY ermöglicht SQL Server, die Zieldatei vor der eigentlichen Sicherung auf bestimmte Eigenschaften zu überprüfen.

Sie können dies verhindern, indem Sie die Sicherungen mithilfe von T-SQL BACKUP DATABASE ...in einem SQL Server-Agent-Job ausführen, anstatt die mit Problemen verbundene GUI für den Wartungsplan zu verwenden.

Max Vernon
quelle
3

RESTORE HEADERONLYDies kann lange dauern, wenn Ihre Sicherung viele virtuelle Protokolldateien (VLFs) enthält. Möglicherweise haben Sie einige Erfolge bei der Adressierung der Zeit, die für die Durchführung von Wiederherstellungen erforderlich ist, wenn Sie die Protokolldatei der Quelldatenbank verkleinern und auf eine geeignete Größe nachwachsen lassen.

Avarkx
quelle