it-swarm.com.de

Löschanweisungen im Transaktionsprotokoll anzeigen

Ist es möglich, delete Anweisungen anzuzeigen, die kürzlich im Transaktionsprotokoll aufgetreten sind?

12
Neil Knight

sie finden nicht die genauen Skripte, die auf SQL ausgeführt wurden (im Transaktionsprotokoll).

Ein Transaktionsprotokoll ist eine Datei, die Informationen zu jeder Änderung enthält, die an der Datenbank vorgenommen wurde. Dies umfasst Datenänderungen (Transaktionen), Datenbankänderungen und Sicherungs-/Wiederherstellungsereignisse.

Der Hauptzweck des Transaktionsprotokolls besteht darin, eine Methode bereitzustellen, mit der eine Datenbank bei Bedarf zu einem bestimmten Zeitpunkt wiederhergestellt werden kann. Dies kann das Zurücksetzen von Transaktionen auf einen bestimmten Zeitpunkt oder das Zurücksetzen von Transaktionen von einer vollständigen Sicherungswiederherstellung umfassen.

um mehr über das Transaktionsprotokoll zu erfahren http://www.sqlservercentral.com/articles/Design+and+Theory/63350/

hier ist ein Skript, das Ihnen die zuletzt ausgeführten Löschabfragen anzeigt

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where dest.TEXT like '%Delete%from%'
ORDER BY deqs.last_execution_time DESC
11
AmmarR

Sie können die einzelnen Zeilen anzeigen, die gelöscht wurden, indem Sie nach LOP_DELETE_ROWS-Operationen suchen, die sich noch im Protokoll befinden:

select * from fn_dblog(NULL, NULL) 
where Operation = 'LOP_DELETE_ROWS'

Wenn das Protokoll recycelt wurde (im einfachen Wiederherstellungsmodell) oder durch Sicherung abgeschnitten wurde (im vollständigen oder Massenwiederherstellungsmodell), können Sie nur die noch im Protokoll verfügbaren Protokollvorgänge anzeigen.

Das Verständnis der Protokolloperationen ist recht komplex. Sie müssen sich über Dinge wie Rückgängigmachen oder Kompensieren von Operationen im Klaren sein, um einige Protokollmuster zu verstehen, auf die Sie stoßen können. Einfach festgeschriebene DELETEs sind jedoch recht einfach zu verstehen.

11
Remus Rusanu