Ich möchte für alle Datenbanken (in SQL Server 2008-Instanz) das Datum abfragen, an dem die letzte Transaktionsprotokollsicherung erstellt wurde. Wie geht das? Ich weiß, dass diese Information irgendwo ist, aber ich weiß nicht wo.SQL Server: Wie wird abgefragt, wenn die letzte Transaktionsprotokollsicherung ausgeführt wurde?
13
A
Antwort
20
SELECT d.name,
MAX(b.backup_finish_date) AS backup_finish_date
FROM master.sys.sysdatabases d
LEFT OUTER JOIN msdb..backupset b
ON b.database_name = d.name
AND b.type = 'L'
GROUP BY d.name
ORDER BY backup_finish_date DESC
4
Ich empfehle dieses modifizierte Skript so können Sie sehen, welche BD in FULL oder BULK_LOGGED ist und keine Log-Sicherung mit.
SELECT d.name,
d.recovery_model_desc,
MAX(b.backup_finish_date) AS backup_finish_date
FROM master.sys.databases d
LEFT OUTER JOIN msdb..backupset b
ON b.database_name = d.name
AND b.type = 'L'
GROUP BY d.name, d.recovery_model_desc
ORDER BY backup_finish_date DES
Mit Blick auf die Ausgabe dieser Anweisung sehe ich NULL für backup_finish_date ... was bedeutet das? http://stackoverflow.com/questions/40050221/sql-server-what-exactly-is-the-backup-finish-date-in-master-sys-databases –