1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| --https://www.mssqltips.com/sqlservertip/1895/script-to-find-sql-server-databases-without-transaction-log-backups/
--Il affiche aussi des DB dont il y déjà eu des backup log mais avant le dernier FULL, donc cela prouve qu'il n'y en a pas eu régulièrement.
SELECT D.[name] AS [database_name_WITHOUT_log_backup], D.[recovery_model_desc]
FROM sys.databases D LEFT JOIN
(
SELECT BS.[database_name],
MAX(BS.[backup_finish_date]) AS [last_log_backup_date]
FROM msdb.dbo.backupset BS
WHERE BS.type = 'L'
GROUP BY BS.[database_name]
) BS1
ON D.[name] = BS1.[database_name]
LEFT JOIN
(
SELECT BS.[database_name],
MAX(BS.[backup_finish_date]) AS [last_data_backup_date]
FROM msdb.dbo.backupset BS
WHERE BS.type = 'D'
GROUP BY BS.[database_name]
) BS2
ON D.[name] = BS2.[database_name]
WHERE
((D.[recovery_model_desc] <> 'SIMPLE'
AND BS1.[last_log_backup_date] IS NULL OR BS1.[last_log_backup_date] < BS2.[last_data_backup_date])
AND D.[name] NOT IN ('model')) AND D.[recovery_model_desc] NOT IN ('SIMPLE') AND D.state <> 6 -- DB OFFLINE
ORDER BY D.[name]; |