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