SCRIPT: How to check 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,
       CAST((CAST(DATEDIFF(s, msdb.dbo.backupset.backup_start_date, msdb.dbo.backupset.backup_finish_date) AS int))/60 AS varchar)+ ' minutes, '
       + CAST((CAST(DATEDIFF(s, msdb.dbo.backupset.backup_start_date, msdb.dbo.backupset.backup_finish_date) AS int))%60 AS varchar)+ ' seconds'
       AS [Total Time],
       CASE msdb.dbo.backupset.is_copy_only
         WHEN 1 THEN 'Yes'
         WHEN 0 THEN 'No'
       END AS is_copy_only,
    CASE msdb..backupset.type
      WHEN 'D' THEN 'Database'
      WHEN 'L' THEN 'Log'
         WHEN 'I' THEN 'Differential'
    END AS backup_type,
    CONVERT(DECIMAL(10, 2), msdb.dbo.backupset.backup_size / 1024. / 1024.) AS backup_size_mb,
    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)
     --AND msdb.dbo.backupset.database_name in ('db_name')
     --AND msdb..backupset.type = 'D'
ORDER BY
    msdb.dbo.backupset.database_name ASC,
    msdb.dbo.backupset.backup_start_date desc

 

----------------------------------------------------------------------------------

SELECT bs.database_name,
    backuptype = CASE
        WHEN bs.type = 'D' AND bs.is_copy_only = 0 THEN 'Full Database'
        WHEN bs.type = 'D' AND bs.is_copy_only = 1 THEN 'Full Copy-Only Database'
        WHEN bs.type = 'I' THEN 'Differential database backup'
        WHEN bs.type = 'L' THEN 'Transaction Log'
        WHEN bs.type = 'F' THEN 'File or filegroup'
        WHEN bs.type = 'G' THEN 'Differential file'
        WHEN bs.type = 'P' THEN 'Partial'
        WHEN bs.type = 'Q' THEN 'Differential partial'
        END + ' Backup',
    CASE bf.device_type
        WHEN 2 THEN 'Disk'
        WHEN 5 THEN 'Tape'
        WHEN 7 THEN 'Virtual device'
        WHEN 9 THEN 'Azure Storage'
        WHEN 105 THEN 'A permanent backup device'
        ELSE 'Other Device'
        END AS DeviceType,
    bms.software_name AS backup_software,
    bs.recovery_model,
    bs.compatibility_level,
    BackupStartDate = bs.Backup_Start_Date,
    BackupFinishDate = bs.Backup_Finish_Date,
    LatestBackupLocation = bf.physical_device_name,
    backup_size_mb = CONVERT(DECIMAL(10, 2), bs.backup_size / 1024. / 1024.),
    compressed_backup_size_mb = CONVERT(DECIMAL(10, 2), bs.compressed_backup_size / 1024. / 1024.),
    database_backup_lsn, -- For tlog and differential backups, this is the checkpoint_lsn of the FULL backup it is based on.
    checkpoint_lsn,
    begins_log_chain,
    bms.is_password_protected
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediafamily bf
    ON bs.[media_set_id] = bf.[media_set_id]
INNER JOIN msdb.dbo.backupmediaset bms
    ON bs.[media_set_id] = bms.[media_set_id]
WHERE bs.backup_start_date > (GETDATE() - 7) --only look at last two months
       -- AND bs.database_name in ('DB_name')
ORDER BY bs.database_name ASC,
    bs.Backup_Start_Date DESC;




SELECT TOP 100 [s].[database_name]
              ,[m].[physical_device_name]
              ,CAST(CAST([s].[backup_size] / 1000000 AS int) AS varchar(14))+' '+'MB'                                         AS [bkSize]
              ,CAST(DATEDIFF([second],[s].[backup_start_date],[s].[backup_finish_date]) AS varchar(4))+' '+'Seconds' AS [TimeTaken]
              ,[s].[backup_start_date]
                       ,[s].[backup_finish_date]
              ,CAST([s].[first_lsn] AS varchar(50))                                                                                      AS [first_lsn]
              ,CAST([s].[last_lsn] AS varchar(50))                                                                   AS [last_lsn]
              ,CASE [s].[type]
                   WHEN 'D' THEN 'Full'
                   WHEN 'I' THEN 'Differential'
                   WHEN 'L' THEN 'Transaction Log'
               END                                                                                                                                       AS [BackupType]
              ,[s].[server_name]
              ,[s].[recovery_model]
FROM [msdb].[dbo].[backupset] AS [s] INNER JOIN [msdb].[dbo].[backupmediafamily] AS [m]
                                             ON [s].[media_set_id] = [m].[media_set_id]
WHERE [s].[database_name] = DB_NAME() -- Remove this line for all the database
AND [s].[type] = 'D'
ORDER BY [backup_start_date] DESC
        ,[backup_finish_date]
 

 

 

Comments