Ich versuche, eine Liste der fehlenden vollständigen Sicherungen zu erhalten, aber ich brauche diese Liste, um mir zu zeigen, welcher Benutzer die letzte Sicherung durchgeführt hat. Das Problem ist, ich weiß nicht, wie man das filtert, da das, was ich abfrage, alle letzten Backups für jeden Benutzer zurückgibt.SQL Server fehlende Sicherungen
Beispiel:
SELECT
@@SERVERNAME AS ServerName,
d.[name] AS DatabaseName,
b.user_name as UserName,
'Backups Not Performed Recently' AS Finding,
'Last backed up: ' + COALESCE(CAST(MAX(b.backup_finish_date) AS VARCHAR(25)),'never') AS Details
FROM
master.sys.databases d
LEFT OUTER JOIN
msdb.dbo.backupset b ON d.name COLLATE SQL_Latin1_General_CP1_CI_AS = b.database_name COLLATE SQL_Latin1_General_CP1_CI_AS
AND b.type = 'D'
AND b.server_name = SERVERPROPERTY('ServerName') /*Backupset ran on current server */
WHERE
d.database_id <> 2 /* Bonus points if you know what that means */
AND d.state NOT IN(1, 6, 10) /* Not currently offline or restoring, like log shipping databases */
AND d.is_in_standby = 0 /* Not a log shipping target database */
AND d.source_database_id IS NULL /* Excludes database snapshots */
GROUP BY
d.name, b.user_name
HAVING
MAX(b.backup_finish_date) <= DATEADD(dd, -7, GETDATE())
OR MAX(b.backup_finish_date) IS NULL
Returns:
ServerName DatabaseName UserName Finding Details
ServerA DatabaseA Userxyz Backups Not Performed Recently Last backed up: Nov 30 2016 2:45PM
ServerA DatabaseA Userabc Backups Not Performed Recently Last backed up: Nov 24 2016 12:36PM
ServerA DatabaseA Userdef Backups Not Performed Recently Last backed up: Feb 5 2017 1:26AM
Als ich es brauchen nur die ID und die Ergebnisse aus dem aktuellen Datum zurückzubringen. Gewünschte Ergebnis würde wie folgt aussehen:
ServerName DatabaseName UserName Finding Details
ServerA DatabaseA Userxyz Backups Not Performed Recently Last backed up: Feb 5 2017 1:26AM
Ihre Lösung ist interessant, aber ich bin nach wie vor Probleme auf Server, die die Abfrage nichts zurückgeben sollte – carolcastelli
@carolcastelli Dann sollten Sie vielleicht Ihre Frage mit Daten aktualisieren, die das eigentliche Problem widerspiegelt, mit dem Sie konfrontiert sind. Meine Anfrage erfüllt die Testdaten, die Sie uns gezeigt haben. –