DBAtlas · Atlas de operaciones de bases de datos

Ver el progreso y la finalización estimada de backup / restauración / CHECKDB

SQL ServerBackup y log

Comando

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

Qué hace

Muestra el progreso porcentual, la hora estimada de finalización y la espera actual de las operaciones largas que reportan percent_complete (BACKUP, RESTORE, DBCC CHECKDB/SHRINK, ALTER INDEX REORGANIZE, rollback tras KILL).

Cuándo usarlo

Cuando el backup nocturno se mete en el horario laboral, para responder "cuándo terminará" durante una restauración grande o para seguir el rollback de una sesión matada.

Precaución

La estimación supone un progreso lineal; durante las fases de redo/undo de una restauración y durante la inicialización a ceros del log, el porcentaje puede quedarse detenido mucho tiempo. Los archivos de log no se benefician de instant file initialization (salvo crecimientos de hasta 64 MB en 2022); las restauraciones con logs grandes pasan mucho tiempo en la primera fase. Consulta de solo lectura; segura.

Abrir en DBAtlas →

Relacionado