Frage

Liebe Leute,

Angenommen, Sie erhalten eine getrennte Sicherung einer SQL Server-Datenbank (2005 oder 2008) und Sie wiederherstellen, um Ihre SQL Server-Instanz.

Gibt es eine Möglichkeit, gibt es ein system Katalog oder etwas, um herauszufinden, Wann der Letzte Schreibvorgang aufgetreten, dass insbesondere auf die Datenbank?Ich möchte in der Lage sein, um herauszufinden, an welchem Tag ein bestimmtes Datenbank-backup war aus - leider ist das nicht wirklich aufgezeichnet wird explizit überall, und prüfen alle Dutzende von Daten-Tabelle für die höchste Datums - /Zeitstempel nicht wirklich eine Wahl....

Irgendwelche Ideen?Sicher - ich kann das Datum/Uhrzeit-Stempel *.bak-Datei - aber kann ich herausfinden, genauer gesagt in SQL Server (Management Studio) ??

Vielen Dank!Marc

War es hilfreich?

Lösung

Sie können versuchen, RESTORE HEADERONLY auf der backup-Datei, wie beschrieben hier

das sollte Ihnen die Informationen die Sie suchen.

Andere Tipps

Wenn Sie Zugriff auf die SQL Server-Instanz, wo die Sicherung ursprünglich ausgeführt wurde, sollten Sie in der Lage zu Abfrage msdb:

SELECT backup_set_id, backup_start_date, backup_finish_date
FROM  msdb.dbo.backupset  
WHERE database_name = 'MyDBname' AND type = 'D' 

Es gibt mehrere Tabelle in Bezug auf die backup-sets:

  • backupfile -- enthält eine Zeile für jede Daten-oder Protokolldatei gesichert
  • backupmediafamily -- enthält eine Zeile für jede Medien-Familie
  • backupmediaset -- enthält eine Zeile für jede backup-Medien-Satz
  • backupset -- enthält eine Zeile für jeden backup-Satz

Durch Abfragen dieser Tabellen können Sie feststellen, Wann die letzten backups aufgetreten sind, welche Art von sicherungen aufgetreten ist und wo die Dateien geschrieben wurden.

Ein bisschen spät, aber sollte das sein, was Sie wollen.

Jeder Schreibzugriff auf die Datenbank ist ein Eintrag in der log-Datei.Die hat eine LSN.Diese müssen gespeichert werden in die Sicherung für das Protokoll wieder her, mindestens.

So, wie passend LSN in einen datetime?

SELECT TOP 5 [End Time] AS BringFirst, *
FROM ::fn_dblog (NULL, NULL)
WHERE [End Time] IS NOT NULL
ORDER BY BringFirst DESC

Ich habe noch nie verwendet, dies vor (hatte gerade ein Spiel für diese Antwort).Einige Schreibvorgänge sind sehr wahrscheinlich Teil der Sicherung selbst, aber Sie sollten in der Lage sein, Sie zu unterscheiden, mit einigen stochern.

soweit ich weiß, in der master-Datenbank gibt es eine Log-Tabelle wo jeder schreiben ist gespeichert mit detaillierte Informationen.ABER ich bin mir nicht sicher, ob Sie brauchen, um die Log-Mechanismus, so dass der Standardwert ist nicht zu melden, und Sie haben, um es zu aktivieren.In Oracle zum Beispiel ist es der Weg, um dort existiert ein system-Datenbank-Tabelle Protokollieren, die Sie Abfragen können.

Wenn das nicht der Fall - Sie könnten immer noch selbst schreiben Sie einen trigger und gelten für jede Tabelle/Spalte benötigt und zu tun, die Protokollierung selbst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top