Dienstag, 4. Oktober 2011

Blick ins Transaktionsprotokoll

Das Transaktionsprotokoll ist der Dreh- und Angelpunkt für die Transaktionsverarbeitung im SQL Server. Außerdem spielt es eine zentrale Rolle bei der zeitnahen Wiederherstellung einer Datenbank (point-in-time recovery). Kein Wunder also, dass im Rahmen von Schulung und Beratung stets viele Fragen zu diesem Thema zu klären sind. Meistens ist es völlig ausreichend, die Funktionsweise mit den SQL Befehlen BACKUP und RESTORE sowie mit den Berichten im SQL Server Management Studio (SSMS) zu verdeutlichen.

Was jedoch, wenn die Fragen tiefer gehen? Zum Beispiel: "Ich möchte gerne sehen, was genau der SQL Server in das Transaktionsprotokoll schreibt." Die sonst von mir so hochgelobte Dokumentation "Books Online" schweigt sich hierzu aus. Aber es gibt eine undokumentierte Funktion, mit der Sie den Inhalt des Transaktionsprotokolls anzeigen lassen können: fn_dblog().

SELECT * FROM fn_dblog (NULL, NULL);

Das Ergebnis ist eine sehr breite Tabelle mit allen Informationen über den Inhalt des Transaktionsprotokolls:


Paul Randal hat ein Video veröffentlicht, das sehr schön die feinen Unterschiede verdeutlicht, die es beim Loggen von ALTER INDEX REBUILD in den beiden Wiederherstellungsmodellen SIMPLE und FULL gibt. Wie alles von Paul Randal ist auch dieses Video sehr lohnenswert, wenn man einen tiefen Blick hinter die Kulissen der SQL Server Oberfläche werfen möchte.