Aktive Komponenten bei der Durchführung
eines Restart
oder einer Wiederherstellung sind die Redo-Tasks. Redo-Tasks sind Server-Tasks.
...
1.
Die Redo-Tasks suchen in der Redo-Liste nach Transaktionen, die
mit einem
COMMIT
abgeschlossen wurden und daher bereit sind, wiedereingelesen zu werden. Die
Transaktionen sind in der Redo-Liste nach der Log-Sequenznummer ihres COMMIT
sortiert.
2. Die Redo-Task beginnt mit der Abarbeitung der Transaktion mit der kleinsten COMMIT-Log-Sequenznummer.
Die zu dieser Transaktion gehörende Redo-Log-Datei wird der Reihe nach abgearbeitet. Ein Redo-Log-Eintrag dieser Redo-Log-Datei mit einer höheren Log-Sequenznummer als die kleinste COMMIT-Log-Sequenznummer darf nicht bearbeitet werden. Die Redo-Task wartet in diesem Fall auf das COMMIT der entsprechenden anderen Transaktion. Erst danach kann die Abarbeitung der Redo-Log-Datei durch die Redo-Task fortgesetzt werden. Durch diesen Mechanismus wird die Datenkonsistenz sichergestellt.
3. Wenn eine COMMIT-Transaktion komplett bearbeitet wurde, löscht die Redo-Task die Redo-Log-Datei und die Undo-Log-Datei der Transaktion. Die Transaktion wird aus der Redo-Liste entfernt.
...
1.
Die Redo-Tasks suchen in der Redo-Liste nach
Transaktionen, die mit einem ROLLBACK
abgeschlossen wurden.
2. Die Redo-Tasks löschen die entsprechenden Redo-Log-Dateien. Dadurch wird ein unnötiges Nachfahren der Transaktionen vermieden.
3.
Wenn der Beginn einer ROLLBACK-Transaktion vor
dem Savepoint lag,
wertet die Redo-Task die Undo-Log-Datei der Transaktion aus, um die
Transaktion auf den Stand vor dem Savepoint zu bringen. Wenn die
ROLLBACK-Transaktion komplett bearbeitet wurde, löscht die Redo-Task die
Undo-Log-Datei der Transaktion.
Wenn der Beginn einer ROLLBACK-Transaktion nach dem Savepoint lag, bearbeitet die Redo-Task die Transaktion nicht weiter.
Siehe auch Beispiel: Restart