Eine aktive Komponente bei der
Durchführung eines Restart oder einer
Wiederherstellung ist der Log-Leser. Der Log-Leser ist eine Server-Task.
Der Log-Leser ermittelt aus den Daten,
die zum Zeitpunkt des letzten Savepoint abgelegt
wurden, die Transaktionsdatei
und erzeugt anhand dieser Transaktionsdatei die Transaktionsliste
neu.
Der Log-Leser ermittelt von der Redo-Log-Verwaltung oder vom Backup-Manager die erforderlichen Informationen, damit alle nach dem letzten Savepoint geschriebenen Redo-Log-Einträge zur Verfügung gestellt werden können.
· Wenn Transaktionen in der Transaktionsliste zum Zeitpunkt des Savepoints als beendet markiert sind, trägt der Log-Leser diese Transaktionen sofort in die Redo-Liste ein.
· Für jede weitere in den Redo-Log-Einträgen gefundene Transaktion wird vom Log-Leser eine Redo-Log-Datei angelegt.
·
Wenn ein COMMIT für die
gesamte Transaktion gefunden wird, trägt der Log-Leser die Transaktion in die
Redo-Liste ein.
·
Wenn ein ROLLBACK für die
gesamte Transaktion gefunden wird, trägt der Log-Leser die Transaktion in die
Redo-Liste ein.
· ROLLBACK in Subtransaktionen: Wenn ein ROLLBACK innerhalb einer Transaktion gefunden wird, entfernt der Log-Leser die entsprechenden Redo-Log-Einträge aus der Redo-Log-Datei. Dadurch wird ein unnötiges Abarbeiten dieser Log-Einträge vermieden.
· Wurden nach dem Lesen aller Redo-Log-Einträge nicht abgeschlossen Transaktionen gefunden, werden diese Transaktionen vom Log-Leser mit einem ROLLBACK versehen und in die Redo-Liste eingetragen. Im weiteren Verlauf werden diese Transaktionen wie ROLLBACK-Transaktionen verarbeitet.
Die weitere Verarbeitung der Transaktionen übernehmen die Redo-Tasks.
Siehe auch Beispiel: Restart