Benutzer:Mauz/Prüfpunkt (Datenbank)

aus Wikipedia, der freien Enzyklopädie

Mit einem Prüfpunkt (englisch Checkpoint) kann eine Datenbank schnell in einen früheren Zustand versetzt werden. Im Falle von Transaktionssystemen (englisch Online-Transaction-Processing OLTP) werden dazu ein Speicherabzug (englisch Snapshot) und das Transaktionsprotokoll auf einem permanenten Datenträger gespeichert.

Beim Speicherabzug (englisch Snapshot) einer relationalen Datenbank werden die Datensätze jeder Tabelle aufgeteilt (partitioniert), so dass diese jeweils von einem Block des permanenten Speichermediums (z.B. Festplatte) aufgenommen werden können. Jeder Teil der Tabelle wird dabei durch einen unterschiedlichen Satz von Primärschlüsseln definiert (z.B. range partitioning, hash partitioning). Bei dem Speicherabzug werden die Tabellenbereiche dann permanent gespeichert, zusammen mit der korrespondierenden Transaktionsnummer.

Im Transaktionsprotokoll werden alle Transaktionen mitprotokolliert und auch, ob diese erfolgreich abgeschlossen (englisch comitted) oder zurückgesetzt (englisch aborted) wurden.

Dadurch können bei einer Wiederherstellung (englisch recovery) der Datenbank ausgehend vom Speicherabzug alle nachfolgenden abgeschlossenen Transaktionen erneut angewendet werden, um die Datenbank wieder in einen definierten Zustand zu bringen.

Literatur

Jun-Lin LIN, Margaret H. DUNHAM: A Survey of Distributed Database Checkpointing. In: Distributed and Parallel Databases. Band 5, Juli 1997, S. 289–319, doi:10.1023/A:1008689312900.

Tuan CAO [u.a.]: Fast Checkpoint Recovery Algorithms for Frequently Consistent Applications. In: Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data. Juni 2011, S. 265–276, doi:10.1145/1989323.1989352.

Eliezer LEVY, Avi SILBERSCHATZ: Incremental Recovery in Main Memory Database Systems. In: IEEE Transactions on Knowledge and Data Engineering. Band 4, Nr. 6, Dezember 1992, S. 529–540, doi:10.1109/69.180604.