Was ist eine Transaktion und was sind ihre Eigenschaften?
Transaktion = Sequenz von Operationen die als eine (atomare) Einheit ausgeführt werden
Eigenschaften: ACID
Atomicity —> alles oder nichts
Consistency —> Konsistenter Zustand -> wieder k. Zustand
Isolation —> Jede Transaktion hat die DB “für sich allein”
Durability —> Änderungen erfolgreicher Transaktionen dürfen NIE verloren gehen
Nenne die drei klassichen Fehler und deren Recovery in Datenbanken
Lokaler Fehler in einer noch nicht committed Transaktion
Wirkung muss zurückgesetzt werden
R1-Recovery
Fehler mit Hauptspeicherverlust (Stromausfall)
Abgeschlossene TAs müssen erhalten bleiben
R2-Recovery -> redo
Noch nicht abgeschlossene TAs müssen zurückgesetzt werden
R3-Recovery -> undo
Fehler mit Hintergrundspeicherverlust
R4-Recovery
Wie ist die Speicherhierachie einer Datenbank aufgebaut?
Hintergrundspeicher (SSD, ect.)
DBMS-Puffer (Hauptspeicher)
Nach welchen beiden Prinzipien wird die Ein-und Auslagerung von Daten zwischen dem DBMS-Puffer und dem Hintergrundspeicher geregelt?
steal: Auslagerung von noch nicht abgeschlossenen Transaktionen —> undo (loser)
no force: Geänderte Seiten können im Puffer vebleiben —> redo (winner)
Nennen sie drei verschiedene Einbringungsstrategien
Update in Place —> Zustand wird immer überschrieben
Twin-Block-Verfahren —> Zustand wird doppelt gespeichert
Schattenspeicherkonzept —> Nur neue Zustände werden extra gespeichert
Wie ist ein Log-Eintrag aufgebaut und was bedeuten die einzelnen Bestandteile?
[LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN]
LSN (Log Sequence Number)
eindeutige Kennung
müssen monoton aufsteigend sein —> zeitliche Reihenfolge der Einträge
TransaktionsID
Key der TA, die die Änderunger hervorgerufen hat
PageID
Key(s) der Seite(n) mit der Änderung
Redo
wie die Änderung nachvollzogen werden kann (after image)
Undo
Änderung rückgängig machen (before image)
PrevLSN
Key der vorhergehenden LSN —> benötigt für Performance (R1 recorvery)
Was ist physische und logische Protokollierung?
Physisch:
before-image
after-image
Logisch
Woran erkennt man ob ein Redo oder Undo einer Seite notwendig ist?
Anhand der Seiten-LSN
Wohin werden Log-Informationen geschrieben und warum?
Wird mindestens zweimal geschrieben:
Log-Datei —> schneller Zugriff
R1-3 Recovery
Log-Archiv
Was ist das Write Ahead Log (WAL) Prinzip?
commit einer TA erst wenn: alle dazugehörigen Log-Einträge ausgeschrieben sind (sicherer Hafen)
Modifizierte Seite auslagern wenn: alle dazugehörigen Log-Einträge müssen im temporären Speicher und im Log-archiv sein
Wie wird der Wiederanlauf nach einem Fehler angegangen?
T1 TAs (Winner) müssen vollständig nachvollzogen werden
T2 TAs (Loser) müssen rückgängig gemacht werden
Was sind die drei Phasen des Wiederanlaufs?
Analyse
Log-Datei durchsuchen —> T1 und T2 ermitteln
Wiederholung der Historie (Redo)
alle protokollierten Änderungen werden in der Reihenfilge ihrer Ausführung in die DB eingebracht
die LSN des Logs wird mit der Seiten-LSN verglichen —> redo notwendig oder nicht
LBS-Eintrag auf der Seite wird aktualisiert
Undo der Loser (Undo)
Änderungen der Loser-TAs werden in umgekehrter Reihenfolge rückgängig gemacht —> protokollieren
Was sind CLRs und wie sehen sie aus?
Compensation-Log-Records
-> haben spitze Klammern <…>
Aufbau:
LSN
TA-ID
betroffene Seite
Redo-Information
UndoNxtLSN —> nächste rückgängig zu machende Änderung
—> enthalten keine Undo-Information, ein mal Loser -> immer Loser
Was ist ein Sicherungspunkt, warum benötigt man Sie und was sind die drei unterschiedlichen Sicherungspunkt-Qualitäten?
-> Sicherungspunkt = Checkpoint —> Recovery muss nurnoch bis dahin prüfen
Qualitäten:
Welche Seitenersetzungsstrategie verwendet eine HauptspeicherDB?
no force
no steal
Last changed2 months ago