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 で開く →

関連項目