来自msdb的SQL Server前一天备份失败报告

时间:2013-12-09 16:02:00

标签: sql sql-server

我想知道是否有一个简单的查询,msdb从服务器上的多个数据库获取前一天所有备份失败(缺少备份,备份未完成等)的报告。我没有能够通过谷歌搜索或其他论坛找到任何我需要的东西,所以任何帮助都会受到很大关注。

1 个答案:

答案 0 :(得分:1)

我认为没有办法找到失败的备份。有一个名为backupset的表,但只保存成功的备份而不是失败的备份。您可以设置作业为您备份并在失败时发送通知。另一种方法是在sql server errro log上中继失败的备份。下面是一个查询,列出成功的备份更友好的方式。

 -- Most Recent Backups and # of days since ANY type of backup.

SELECT  B.name as Database_Name, ISNULL(STR(ABS(DATEDIFF(day, GetDate(),MAX(backup_finish_date)))), 'NEVER') as DaysSinceLastBackup,
ISNULL(Convert(char(19), MAX(backup_finish_date), 100), 'NEVER') as LastBackupDate, 
case 
    when type='D' then '** FULL **' 
    when type='I' then 'DIFFERENTIAL'
    when type='L' then 'LOG'
end as Backup_Type,
case 
    when status > 16 then 'Check DB Status' -- Alert that DB might be ReadOnly, Offline etc...
        else ' '
end as 'DB Status'
FROM master.dbo.sysdatabases B LEFT OUTER JOIN msdb.dbo.backupset A ON A.database_name = B.name --AND A.type = 'D' 
where B.name not like '%skip these%' 
GROUP BY B.name , a.type, status
ORDER BY B.name , LastBackupDate desc,a.type, status`