Jaki jest pożytek z przywracania nagłówka podczas wykonywania kopii zapasowej?

10

Podczas monitorowania kopii zapasowych za pomocą następującego zapytania:

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%'

Zauważyłem, że przed utworzeniem kopii zapasowej program SQL Server wykonuje przywracanie bezpośrednio po utworzeniu kopii zapasowej.

Zastanawiałem się, do czego to służy i czy czas jego wykonania można w jakiś sposób skrócić. Wydaje się, że trwa to dłużej niż faktyczna kopia zapasowa.

Nicolas de Fontenay
źródło

Odpowiedzi:

7

Zauważyłem, że przed utworzeniem kopii zapasowej program SQL Server wykonuje przywracanie bezpośrednio po utworzeniu kopii zapasowej.

Może to być częścią kroków przywracania, które są wykonywane wewnętrznie przez serwer SQL.

Możesz zajrzeć do faz przywracania za pomocą DBCC TRACEON(3604, 3605, 3004);. Używaj go tylko do celów edukacyjnych na serwerze NON PROD.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jak widać powyżej, istnieją zasadniczo 3 główne fazy przywracania - kopia danych, cofanie i ponawianie wraz z innymi podfazami, w których się otwiera i ładuje również zestaw kopii zapasowych.

Wydaje się, że trwa to dłużej niż faktyczna kopia zapasowa.

Aby poprawić czas przywracania, powinieneś

  • Włącz natychmiastową inicjalizację pliku.
  • Użyj T-SQL i przywróć with REPLACEistniejącą bazę danych zamiast upuszczać i przywracać.
  • Upewnij się, że wykonujesz właściwą konserwację msdb.
  • Sprawdź VLF. Im więcej VLF, tym dłuższy czas przywracania.

Zobacz Babysitting powolną kopię zapasową lub przywracanie przez @AaronBertrand .

Kin Shah
źródło
6

RESTORE HEADERONLY pozwala SQL Serverowi sprawdzić plik docelowy pod kątem określonych właściwości przed faktyczną kopią zapasową.

Można temu zapobiec, uruchamiając kopie zapasowe przy BACKUP DATABASE ...użyciu języka T-SQL w zadaniu agenta programu SQL Server, zamiast interfejsu GUI planu konserwacji, który jest pełen problemów.

Max Vernon
źródło
3

RESTORE HEADERONLYmoże zająć dużo czasu, jeśli kopia zapasowa zawiera wiele wirtualnych plików dziennika (VLF). Być może odniesiesz sukces w rozwiązaniu problemu z czasem przywracania, jeśli zmniejszysz i przywrócisz plik dziennika źródłowych baz danych do odpowiedniego rozmiaru.

Avarkx
źródło