Ход backup / restore / CHECKDB и оценка завершения
SQL ServerБэкап и журналКоманда
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';Что делает
Показывает процент выполнения, ожидаемое время окончания и текущее ожидание для долгих операций, сообщающих percent_complete (BACKUP, RESTORE, DBCC CHECKDB/SHRINK, ALTER INDEX REORGANIZE, откат после KILL).
Когда использовать
Когда ночная резервная копия заходит на рабочие часы, чтобы ответить "когда закончится" при большом восстановлении или отследить откат завершённой сессии.
Внимание
Оценка предполагает линейный ход; в фазах redo/undo восстановления и при обнулении журнала процент может долго стоять на месте. Файлы журнала не используют мгновенную инициализацию файлов (кроме приращений до 64 MB в 2022); восстановления с большими журналами долго находятся в первой фазе. Запрос только на чтение; безопасно.