In dem Beispiel aus Tabelle 13.2 wurden die Redo- und die
Undo-Informationen logisch protokolliert, d.h. durch Angabe
der Operation. Eine andere Möglichkeit besteht in der
physischen Protokollierung, bei der statt der Undo-Operation
das sogenannte Before-Image und für die Redo-Operation
das sogenannte After-Image gespeichert wird.
Bei der logischen Protokollierung wird
-
das Before-Image durch Ausführung des Undo-Codes aus
dem After-Image generiert,
-
das After-Image durch Ausführung des Redo-Codes
aus dem Before-Image generiert.
Um zu erkennen, ob das Before-Image oder After-Image
in der materialisierten Datenbasis enthalten ist, dient die
LSN. Beim Anlegen eines Log-Eintrages wird die neu generierte
LSN in einen reservierten Bereich der Seite geschrieben und dann später
mit dieser Seite in die Datenbank zurückkopiert. Daraus läßt sich
erkennen, ob für einen bestimmten Log-Eintrag das Before-Image
oder das After-Image in der Seite steht:
-
Wenn die LSN der Seite einen kleineren Wert als die LSN des Log-Eintrags
enthält, handelt es sich um das Before-Image.
-
Ist die LSN der Seite größer oder gleich der
LSN des Log-Eintrags, dann wurde bereits das After-Image
auf den Hintergrundspeicher propagiert.