DBAtlas · Atlas für Datenbankbetrieb

Fortschritt und voraussichtliches Ende von Backup / Restore / CHECKDB anzeigen

SQL ServerBackup & Log

Befehl

SELECT r.session_id, r.command, DB_NAME(r.database_id) AS db,
       CAST(r.percent_complete AS DECIMAL(5,1))                     AS pct,
       DATEADD(SECOND, r.estimated_completion_time / 1000, GETDATE()) AS eta,
       r.total_elapsed_time / 60000                                 AS elapsed_min,
       r.wait_type, r.wait_time, r.blocking_session_id
FROM   sys.dm_exec_requests r
WHERE  r.percent_complete > 0;

-- Restore phases and throughput are in the error log:
EXEC sys.xp_readerrorlog 0, 1, N'Restore';

Was es tut

Zeigt für lange Operationen, die percent_complete melden (BACKUP, RESTORE, DBCC CHECKDB/SHRINK, ALTER INDEX REORGANIZE, Rollback nach KILL), den prozentualen Fortschritt, die voraussichtliche Endzeit und den aktuellen Wait.

Wann einsetzen

Wenn das nächtliche Backup in die Geschäftszeit hineinläuft, um bei einem großen Restore "wann ist es fertig" zu beantworten oder um das Rollback einer beendeten Session zu verfolgen.

Vorsicht

Die Schätzung geht von linearem Fortschritt aus; in den Redo-/Undo-Phasen eines Restores und während der Null-Initialisierung des Logs kann der Prozentwert lange stehen bleiben. Logdateien profitieren nicht von Instant File Initialization (außer Vergrößerungen bis 64 MB unter 2022); Restores mit großen Logs verbringen lange Zeit in der ersten Phase. Reine Leseabfrage; sicher.

In DBAtlas öffnen →

Verwandte Einträge