Get Database Restore Progress

A couple of weeks back I posted a script that checks the progress of any backups running on and instance. A few days later I needed a script to check the progress of a restore. Fortunately enough, the backup script can be re-used with a very simple change. This simple script to check if any restores are running, how long they have been running and what the anticipated complete time will be.

Happy scripting!


SELECT A.NAME
    ,B.TOTAL_ELAPSED_TIME / 60000 AS [Running Time]
    ,B.ESTIMATED_COMPLETION_TIME / 60000 AS [Remaining]
    ,B.PERCENT_COMPLETE AS [%]
    ,(
        SELECT TEXT
        FROM sys.dm_exec_sql_text(B.SQL_HANDLE)
        ) AS COMMAND
FROM MASTER..SYSDATABASES A
    ,sys.dm_exec_requests B
WHERE A.DBID = B.DATABASE_ID
    AND B.COMMAND LIKE '%RESTORE%'
ORDER BY percent_complete DESC
    ,B.TOTAL_ELAPSED_TIME / 60000 DESC

Author: Richie Lee

Full time computer guy, part time runner. Full time Dad, part time blogger. Knows a thing or two about Pokémon. Knows too much about SQL Agent. Writer of fractured sentences. Maker of the best damn macaroni cheese you've ever tasted.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s