1

通过 SINGLE T-sql 查询可以发现: 1. 数据库备份模式 - [full,simple,bulk] 2. IS 数据库计划备份 [yes, no] 3. 如果启用备份,DB 备份的大小

和每日事务日志备份大小?任何帮助

4

1 回答 1

4

您可以查询 msdb 备份集表以获取此类信息:

SELECT 
    database_name,
    recovery_model, 
    CASE bs.type 
        WHEN 'D' THEN 'FULL'
        WHEN 'I' THEN 'DIFFERENTIAL'
        WHEN 'L' THEN 'TRANSACTION LOG'
        ELSE 'UNKNOWN'
    END AS backup_type, 
    backup_finish_date,
    backup_size,
    compressed_backup_size
FROM msdb.dbo.backupset bs

编辑:

此查询将返回数据库名称、恢复模式以及完整备份、差异备份和日志备份的最后日期时间。如果数据库在最后一个 FULL 中返回 NULL,则根本不会备份它。如果它为最后一个事务日志返回 NULL 并且数据库使用 FULL 恢复,则它没有被正确备份。

SELECT  
    d.name, 
    d.recovery_model_desc,
    MAX(CASE bs.type WHEN 'D' THEN backup_finish_date ELSE NULL END) AS [last_full_backup_date],
    MAX(CASE bs.type WHEN 'I' THEN backup_finish_date ELSE NULL END) AS [last_diff_backup_date],
    MAX(CASE bs.type WHEN 'L' THEN backup_finish_date ELSE NULL END) AS [last_tlog_backup_date]
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON bs.database_name = d.name
GROUP BY d.name, d.recovery_model_desc
于 2010-08-17T13:07:20.053 回答