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 阶段和日志零初始化期间,百分比可能长时间停滞。日志文件不能使用即时文件初始化(2022 上 64 MB 以内的增长除外);日志较大的还原会在第一阶段耗费很长时间。只读查询;安全。

在 DBAtlas 中打开 →

相关内容