백업 / 복원 / 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 단계와 로그 zero-initialization 중에는 진행률이 오래 멈춰 있을 수 있다. 로그 파일은 instant file initialization의 혜택을 받지 못하므로(2022에서 64 MB까지의 증가는 예외) 로그가 큰 복원은 첫 단계에서 오래 걸린다. 읽기 전용 쿼리이며 안전함.