May 17, 2026, 11:40 PM
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
;WITH LAST_FULL_BACKUP_LIST AS
|
||||
(
|
||||
SELECT
|
||||
SYSDBLIST.name AS Name,
|
||||
MAX(BUSETS.backup_finish_date) AS Last_Backup_Finish_DateTime
|
||||
FROM
|
||||
MASTER.sys.databases AS SYSDBLIST
|
||||
LEFT OUTER JOIN
|
||||
msdb.dbo.backupset AS BUSETS
|
||||
ON
|
||||
SYSDBLIST.name = BUSETS.database_name
|
||||
WHERE
|
||||
SYSDBLIST.name<>'tempdb'
|
||||
AND
|
||||
BUSETS.[type] ='D' OR BUSETS.[type] IS NULL
|
||||
GROUP BY
|
||||
SYSDBLIST.name
|
||||
)
|
||||
,
|
||||
LAST_DIFFERENTIAL_BACKUP_LIST
|
||||
AS
|
||||
(
|
||||
SELECT
|
||||
SYSDBLIST.name AS Name,
|
||||
MAX(BUSETS.backup_finish_date) AS Last_Backup_Finish_DateTime
|
||||
FROM
|
||||
MASTER.sys.databases AS SYSDBLIST
|
||||
LEFT OUTER JOIN
|
||||
msdb.dbo.backupset AS BUSETS
|
||||
ON
|
||||
SYSDBLIST.name = BUSETS.database_name
|
||||
WHERE
|
||||
SYSDBLIST.name<>'TempDB'
|
||||
AND
|
||||
BUSETS.[type] ='I'
|
||||
GROUP BY
|
||||
SYSDBLIST.name
|
||||
)
|
||||
|
||||
,
|
||||
|
||||
LOG_BACKUP_LIST
|
||||
AS
|
||||
(
|
||||
SELECT
|
||||
SYSDBLIST.name AS Name,
|
||||
BUSETS.backup_finish_date AS Backup_Finish_DateTime,
|
||||
ROUND(((BUSETS.backup_size/1024)/1024),2) AS Backup_Size_MB,
|
||||
ROW_NUMBER() OVER(Partition by SYSDBLIST.name ORDER BY BUSETS.backup_finish_date DESC) AS RevOrderBuDate
|
||||
FROM
|
||||
MASTER.sys.databases AS SYSDBLIST
|
||||
LEFT OUTER JOIN
|
||||
msdb.dbo.backupset AS BUSETS
|
||||
ON
|
||||
SYSDBLIST.name = BUSETS.database_name
|
||||
WHERE
|
||||
SYSDBLIST.name<>'TempDB'
|
||||
AND
|
||||
BUSETS.[type] ='L'
|
||||
)
|
||||
,
|
||||
LAST_LOG_BACKUP_LIST
|
||||
AS
|
||||
(SELECT
|
||||
Name,
|
||||
Backup_Finish_DateTime AS Last_Backup_Finish_DateTime,
|
||||
Backup_Size_MB AS Log_Backup_Size_MB
|
||||
FROM
|
||||
LOG_BACKUP_LIST
|
||||
WHERE
|
||||
RevOrderBuDate=1
|
||||
)
|
||||
SELECT
|
||||
case
|
||||
when DATEDIFF(DAY,BUSETS.backup_finish_date,GETDATE()) <=1 then 'OK'
|
||||
when DATEDIFF(DAY,BUSETS.backup_finish_date,GETDATE()) is null then 'ERROR'
|
||||
when DATEDIFF(DAY,BUSETS.backup_finish_date,GETDATE()) > 3 then '!!'
|
||||
when DATEDIFF(DAY,BUSETS.backup_finish_date,GETDATE()) > 1 then '-->'
|
||||
end as Status,
|
||||
SERVERPROPERTY('Servername') AS ServerName,
|
||||
SYSDBLIST.name AS Database_Name,
|
||||
SYSDBLIST.Recovery_model_desc,
|
||||
CASE WHEN BUSETS.backup_set_id IS NULL THEN 'NO Backup' ELSE 'Backup Complete' END AS Backup_Completed,
|
||||
BUSETS.backup_start_date AS Backup_Start_DateTime,
|
||||
BUSETS.backup_finish_date AS Backup_Finish_DateTime,
|
||||
DATEDIFF(MINUTE, BUSETS.backup_start_date, BUSETS.backup_finish_date) AS Duration_Min,
|
||||
(DATEDIFF(DAY,BUSETS.backup_finish_date,GETDATE())) AS Days_Since_Last_Backup,
|
||||
|
||||
LASTDIFFBACKUP.Last_Backup_Finish_DateTime AS Last_Differential_Finish_DateTime,
|
||||
(DATEDIFF(DAY,LASTDIFFBACKUP.Last_Backup_Finish_DateTime ,GETDATE())) AS Days_Since_Last_Differential_Backup,
|
||||
LASTLOGBACKUP.Last_Backup_Finish_DateTime AS Last_Log_Finish_DateTime,
|
||||
(DATEDIFF(DAY,LASTLOGBACKUP.Last_Backup_Finish_DateTime,GETDATE()))AS Days_Since_Last_Log_Backup,
|
||||
LASTLOGBACKUP.Log_Backup_Size_MB AS LOG_Backup_Size_MB,
|
||||
CASE
|
||||
WHEN BUSETS.[type] = 'D' THEN 'Full Backup'
|
||||
WHEN BUSETS.[type] = 'I' THEN 'Differential Database'
|
||||
WHEN BUSETS.[type] = 'L' THEN 'Log'
|
||||
WHEN BUSETS.[type] = 'F' THEN 'File/Filegroup'
|
||||
WHEN BUSETS.[type] = 'G' THEN 'Differential File'
|
||||
WHEN BUSETS.[type] = 'P' THEN 'Partial'
|
||||
WHEN BUSETS.[type] = 'Q'THEN 'Differential partial'
|
||||
END AS Backup_Type,
|
||||
ROUND(((BUSETS.backup_size/1024)/1024),2) AS Backup_Size_MB
|
||||
FROM
|
||||
MASTER.sys.databases AS SYSDBLIST
|
||||
LEFT OUTER JOIN
|
||||
msdb.dbo.backupset AS BUSETS
|
||||
ON
|
||||
SYSDBLIST.name = BUSETS.database_name
|
||||
LEFT OUTER JOIN
|
||||
msdb.dbo.backupmediafamily AS BUMEDFAM
|
||||
ON
|
||||
BUSETS.media_set_id = BUMEDFAM.media_set_id
|
||||
|
||||
INNER JOIN
|
||||
LAST_FULL_BACKUP_LIST AS LASTBACKUP
|
||||
ON
|
||||
SYSDBLIST.Name=LASTBACKUP.Name
|
||||
AND
|
||||
ISNULL(BUSETS.backup_finish_date,'01/01/1900') = ISNULL(LASTBACKUP. Last_Backup_Finish_DateTime,'01/01/1900')
|
||||
|
||||
LEFT OUTER JOIN
|
||||
LAST_DIFFERENTIAL_BACKUP_LIST AS LASTDIFFBACKUP
|
||||
ON
|
||||
SYSDBLIST.Name=LASTDIFFBACKUP.Name
|
||||
|
||||
LEFT OUTER JOIN
|
||||
LAST_LOG_BACKUP_LIST AS LASTLOGBACKUP
|
||||
ON
|
||||
SYSDBLIST.Name=LASTLOGBACKUP.Name
|
||||
WHERE
|
||||
SYSDBLIST.name<>'TempDB'
|
||||
Reference in New Issue
Block a user