DBAtlas · Atlas d'exploitation des bases de données

Voir la progression et l'achèvement estimé d'une sauvegarde / restauration / d'un CHECKDB

SQL ServerSauvegarde et journal

Commande

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

Ce que fait la commande

Affiche le pourcentage de progression, l'heure de fin estimée et l'attente en cours pour les opérations longues qui rapportent percent_complete (BACKUP, RESTORE, DBCC CHECKDB/SHRINK, ALTER INDEX REORGANIZE, rollback après KILL).

Quand l'utiliser

Quand la sauvegarde nocturne déborde sur les heures ouvrées, pour répondre à "quand cela va-t-il finir" pendant une grosse restauration, ou pour suivre le rollback d'une session tuée.

Attention

L'estimation suppose une progression linéaire ; pendant les phases redo/undo d'une restauration et pendant l'initialisation à zéro du journal, le pourcentage peut stagner longtemps. Les fichiers journaux ne bénéficient pas de l'instant file initialization (sauf les croissances jusqu'à 64 MB en 2022) ; les restaurations avec de gros journaux passent longtemps dans la première phase. Requête en lecture seule ; sûre.

Ouvrir dans DBAtlas →

Voir aussi