通过 SINGLE T-sql 查询可以发现: 1. 数据库备份模式 - [full,simple,bulk] 2. IS 数据库计划备份 [yes, no] 3. 如果启用备份,DB 备份的大小
和每日事务日志备份大小?任何帮助
通过 SINGLE T-sql 查询可以发现: 1. 数据库备份模式 - [full,simple,bulk] 2. IS 数据库计划备份 [yes, no] 3. 如果启用备份,DB 备份的大小
和每日事务日志备份大小?任何帮助
您可以查询 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