SQL Server 2008 R2 查询所有数据库的最后一次成功的数据库备份

Kyl*_*ndt 4 sql-server backup sql-server-2008-r2

是否可以在 SQL Sever 2008 R2 中查询每个数据库的上次成功备份日期(可能还有备份类型)?

Joh*_*hnS 7

是的,只要历史数据仍在 msdb 数据库中。以下代码块将获取您最近的 100 个备份,包括完整备份、差异备份和日志备份。

SELECT TOP 100 
    s.database_name, 
    m.physical_device_name,
    CAST(DATEDIFF(second, s.backup_start_date,
    s.backup_finish_date) AS VARCHAR(100)) + ' ' + 'Seconds' TimeTaken,
    s.backup_start_date,
    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 s
    INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id 
    WHERE s.database_name = DB_NAME() -- Remove this line for all the database
    ORDER BY backup_start_date DESC, backup_finish_date
    GO
Run Code Online (Sandbox Code Playgroud)


小智 6

尝试这个:

SELECT Database_Name,
CONVERT( SmallDateTime , MAX(Backup_Finish_Date)) as Last_Backup, 
DATEDIFF(d, MAX(Backup_Finish_Date), Getdate()) as Days_Since_Last
FROM MSDB.dbo.BackupSet
WHERE Type = 'd'
GROUP BY Database_Name
Run Code Online (Sandbox Code Playgroud)