How To Monitor SQL Server Database Backup and Restore Progress Status

This is very useful when you want to monitor the progress of your Database backup or restore progress status especially on large databases where it normally takes a longer time to finish than usual.

Use the script below and run it on the SQL Instance where the backup is running.

SELECT session_id AS SPID
	, command
	, a.text AS Query
	, start_time, percent_complete
	, DATEADD(SECOND,estimated_completion_time/1000, GETDATE()) AS estimated_completion_time 
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a 
WHERE r.command IN('BACKUP DATABASE','RESTORE DATABASE')
--OR below WHERE clause can be use as well.
--where r.command like '%backup%'
--or r.command like '%restore%'

Huge credit to this post.