Thursday, July 26, 2018

Query to find last Full differential and log backups of all databases - SQL Server

Query to find last Full differential and log backups of all databases - SQL Server

Run below query to find last Full differential and log backups of all databases in SQL Server


SELECT  name ,
            recovery_model_desc ,
            state_desc ,
            d AS 'Last Full Backup' ,
            i AS 'Last Differential Backup' ,
            l AS 'Last log Backup'
    FROM    ( SELECT    db.name ,
                        db.state_desc ,
                        db.recovery_model_desc ,
                        type ,
                        backup_finish_date
              FROM      master.sys.databases db
                        LEFT OUTER JOIN msdb.dbo.backupset a ON a.database_name = db.name
            ) AS Sourcetable
        PIVOT
            ( MAX(backup_finish_date) FOR type IN ( D, I, L ) ) AS MostRecentBackup


Query to find last log backups of all databases - SQL Server

Query to find last log backups of all databases - SQL Server

Run below query to find last log backups of all databases in SQL Server


SELECT  name ,
            recovery_model_desc ,
            state_desc ,
            l AS 'Last log Backup'
    FROM    ( SELECT    db.name ,
                        db.state_desc ,
                        db.recovery_model_desc ,
                        type ,
                        backup_finish_date
              FROM      master.sys.databases db
                        LEFT OUTER JOIN msdb.dbo.backupset a ON a.database_name = db.name
            ) AS Sourcetable
        PIVOT
            ( MAX(backup_finish_date) FOR type IN ( l) ) AS MostRecentBackup

Query to find last differential backups of all databases - SQL Server

Query to find last differential backups of all databases - SQL Server

Run below query to find last differential backups of all databases in SQL Server.

SELECT  name ,
            recovery_model_desc ,
            state_desc ,
            i AS 'Last Differential Backup'
    FROM    ( SELECT    db.name ,
                        db.state_desc ,
                        db.recovery_model_desc ,
                        type ,
                        backup_finish_date
              FROM      master.sys.databases db
                        LEFT OUTER JOIN msdb.dbo.backupset a ON a.database_name = db.name
            ) AS Sourcetable
        PIVOT
            ( MAX(backup_finish_date) FOR type IN ( i) ) AS MostRecentBackup

Query to find Last Full backup of all databases - SQL Server

Query to find Last Full backup of all databases - SQL Server

Run below script to find out last full backup of all the databases.

SELECT  name ,
            recovery_model_desc ,
            state_desc ,
            d AS 'Last Full Backup'
    FROM    ( SELECT    db.name ,
                        db.state_desc ,
                        db.recovery_model_desc ,
                        type ,
                        backup_finish_date
              FROM      master.sys.databases db
                        LEFT OUTER JOIN msdb.dbo.backupset a ON a.database_name = db.name
            ) AS Sourcetable
        PIVOT
            ( MAX(backup_finish_date) FOR type IN ( D) ) AS MostRecentBackup

Query to check running backups and restores with ETA - SQL Server

Query to check running backups and restores with ETA - SQL Server

Run the below query to check running backups and restores with ETA.

SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [PERCENT Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GETDATE()),20) AS [ETA COMPLETION TIME],
CONVERT(NUMERIC(6,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed MIN],
CONVERT(NUMERIC(6,2),r.estimated_completion_time/1000.0/60.0) AS [ETA MIN],
CONVERT(NUMERIC(6,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(100),(SELECT SUBSTRING(TEXT,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')



Query to check running backups and restores - SQL Server

How to check running backups and restores - SQL Server

Run the below script to check running backups and

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')

Query to check Backup history - SQL Server

Run this below code you will get the backup history

SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7)
ORDER BY
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_finish_date 

Query to find last Full differential and log backups of all databases - SQL Server

Query to find last Full differential and log backups of all databases - SQL Server Run below query to find last Full differential and log...