如何在计划中备份数据库如何通过t-sql查找

时间:2010-08-17 07:40:09

标签: sql sql-server-2005 sql-server-2008 database-backups

通过SINGLE T-sql查询我们可以找到: 1.数据库备份模式 - [完整,简单,批量] 2. IS数据库计划备份[是,否] 3.如果启用了备份数据库备份的大小

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

1 个答案:

答案 0 :(得分:3)

您可以在msdb backupset表中查询此类信息:

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