03 - Concurrency und Recovery Flashcards
Definition: Recovery
Wiederherstellung von Daten bei schweren Fehlern (entweder Hardware Fehler oder Software Fehler)
Backup-Strategien (3)
1) Komplett-Backups
2) Inkrementelle Backups
3) Differenzielle Backups
Vorteile: Komplett-Backups (1)
1) Relativ einfaches zwischenspeichern von Backups (da Daten immer komplett vorhanden sind).
Nachteile: Komplett-Backups (2)
1) Große Datenmengen, da jeder Backupstand alle Daten enthält.
2) Erstellen eines Backups dauert relativ lang –> Zeitraum zwischen 2 Backups kann nicht beliebig klein sein.
Vorteile: Inkrementelle Backups (1)
1) Jeder Backup ist schnell erledigt und beansprucht keine hohen Datenmengen.
Nachteile: Inkrementelle Backups (1)
1) Zurückspielen des Backups deutlich mühsamer.
Definition: Komplett-Backups
Bei jedem Backup wird hier der komplette Datenstand gespeichert.
Definition: Inkrementelle Backups
Es wird immer nur ein Teil der Datenbank inkrementell für jedes Backup gesichert (z.B. ein Teil pro Wochentag).
Definition: Differenzielle Backups
Hier wird der Unterschied zwischen dem letzten Komplett-Backup gespeichert. Dabei wird jede Änderung in einer Logdatei Protokolliert.
Definition: Metadaten
Daten, die Informationen zu und Zustände über eine Datenbank merken (z.B. Informationen zu laufenden Transaktionen).
Definition: Datenbankpuffer
Änderungen in der Datenbank werden hier (im Arbeitsspeicher) zwischengespeichert und eingeschrieben, da es performanter ist. Dennoch werden die Daten asynchron aktualisiert. Jede Änderung die an den Daten vorgenommen wird, erfolgt im Datenbankpuffer, so spart man sich das ständige I/O von den zugehörigen Datenbanken.
Definition: Before-Image
Ein Before-Image gibt den Zustand vor einer Transaktion wieder und bezieht sich nur auf die betroffenen Datensätze.
Definition: After-Image
Ein Before-Image gibt den Zustand nach einer Transaktion wieder und bezieht sich nur auf die betroffenen Datensätze.
Bestandteile: Arbeitsspeicher DBMS (2)
1) Puffer (Cache)
2) Metadaten
Definition: Logdatei
Hier werden alle Datenänderungen vom Puffer festgeschrieben und persistiert (Before- und After-Images und die dazugehörigen Metadaten).
Schritte: Einfache Transaktion (7)
1) Lesen der Daten
2) Merken der Bisherigen Daten
3) Ändern der Daten
4) Merken der geänderten Daten
5) Transaktion wird durchgeführt
6) Transaktionsende COMMIT/ROLLBACK
7) Änderungen in die Datenbank/en schreiben
Vorteile: Puffering (3)
1) Minimaler I/O Verkehr
2) Werden Daten mehrmals geändert, so müssen diese nicht jedes Mal geschrieben werden
3) Werden gelesene Daten wieder gelesen, so stehen diese bereits zur Verfügung
Nachteile: Puffering (1)
1) Dauerhaftigkeit der Daten ist nur von den Logdateien abhängig.
Definition: Undo-Log
Eine Logdatei, die alle Before-Images und dazügehörigen Metadaten enthält. Ein Eintrag im Undo-Log muss nur bis zum Transaktionsende aufgehoben werden.
Definition: Redo-Log
Eine Logdatei, die alle After-Images und dazügehörigen Metadaten enthält. Ein Eintrag im Redo-Log muss bis zur nächsten Backup aufgehoben werden.
Definition: Checkpoints
Zeitpunkte zu der alle geänderten Daten zwangsweise in die Datenbank geschrieben werden.
Nachteile: Checkpoints (2)
1) Die hohe I/O-Last behindert alle Transaktionen
2) Bei jedem Checkpoint steigen die Antwortzeiten
Definition: Concurency
Hier geht es um den Parallelbetrieb in Datenbanken. Concurrency arbeitet nach der Regel, dass jede Transaktion so ablaufen muss, als sei sie allein im System. Des weiteren sollte jede Transaktion Ergebnisse liefern, die unabhängig von anderen Transaktionen sind.
Concurrency Probleme (3)
1) Problem der verlorengegangenen Änderung
2) Problem der Abhängigkeit von nicht abgeschlossenen Transaktionen
3) Problem der Inkosistenz der Daten