DBAtlas · 데이터베이스 운영 아틀라스

백업 / 복원 / 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까지의 증가는 예외) 로그가 큰 복원은 첫 단계에서 오래 걸린다. 읽기 전용 쿼리이며 안전함.

DBAtlas에서 열기 →

관련 항목