Fehlerbehandlung und Recovery

Ähnliche Dokumente
Fehlerbehandlung (Recovery)

Aufgabe der Recovery-Komponente des Datenbanksystems ist es, nach einem Fehler den jüngsten konsistenten Datenbankzustand wiederherzustellen.

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Fehlerbehandlung. Transaktionsverwaltung. Kapitel 7 T 2 T 3. T n T 1. Transaktions-Manager. Scheduler. Daten-Manager

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Recovery- und Buffermanager

Kapitel 3: Logging & Recovery

9. Wiederherstellung und Datensicherung

Übungen zur Vorlesung. Datenbanken I

Transaktionsverwaltung und Recovery

Transaktionsverwaltung

Datenbanksysteme II SS Übungsblatt 9: Wiederholung

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung

Logging und Recovery 0. Einführung - Fehlermodell - Recovery-Arten

Wiederherstellung (Recovery)

Datenbank-Administration im WS 2012/13 - Einführung in Projekt 3 - Prof. Dr. Klaus Küspert Dipl.-Math. Katharina Büchse Dipl.-Inf.

C. Mohan Recovery und Transaktionen

Kapitel 2 Transaktionsverwaltung

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

IT-Kompaktkurs. Datenbanken Skript zur Folge 4. Prof. Dr. Manfred Gruber Fachhochschule München

Transaktionsverwaltung

Vorlesungsinhalt. Recovery. G. Specht: Datenbanksysteme Kapitel XI. Vorlesung Datenbanksysteme Univ.-Prof. Dr.

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Datenbanken: Backup und Recovery

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenintegrität und Transaktionskonzept

Die Sicht eines Sysadmins auf DB systeme

Wiederanlauf (Recovery)

Kapitel 15. Transaktionen, Fehlerbehandlung, Multi-User. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

TAV Übung 3. Übung 3: Verteilte Datenhaltung

Datenbanksysteme II SS Übungsblatt 9: Probeklausur

RECOVERY. "Concurrency Control and Recovery in Database Systems" Bernstein, Hadzilacos, Goodman. Addison-Wesley. Kapitel 1, 6

Synchronisation in Datenbanksystemen in a nutshell

Alle Metadaten werden in Dateien gehalten

Probeklausur zur Vorlesung Datenbanksysteme II

Prozessarchitektur einer Oracle-Instanz

Datenbanken Konsistenz und Mehrnutzerbetrieb III

View. Arbeiten mit den Sichten:

1. Transaktionskonzept

9 Transaktionskonzept

Datenbanksysteme II Recovery Felix Naumann

Physischer Datenbankentwurf: Datenspeicherung

RECOVERY. "Concurrency Control and Recovery in Database Systems" Bernstein, Hadzilacos, Goodman. Addison-Wesley. Kapitel 1, 6.

11. Backup & Recovery. Datenbankadministration

Oracle Datenbank - Recovery

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

Physische Datenorganisation

Kapitel 8: Physischer Datenbankentwurf

Aufbau einer Oracle Datenbank Tablespace, Arten von Dateien

4 LCN VCN LCN Extents werden außerhalb der MFT gespeichert

Kapitel 9 Paralleler Zugriff auf DB

Tag 4 Inhaltsverzeichnis


Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Oracle Datenbank Architektur nicht nur für Einsteiger. Martin Klier Klug GmbH integrierte Systeme, Teunz

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

Abschluss Einblick und Ausblick

Aufbau Datenbanksysteme

Vorlesung mit Übung Datenbanksysteme 2

BS-Unterstützung für NVRAM

Datenbanken: Transaktionskonzept und Concurrency Control

Implementierung von Dateisystemen

Kapitel 8: Transaktionen

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Tag 4 Inhaltsverzeichnis

Datenbankadministration

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Sicherheit für Informationssysteme

Transaktionen und Synchronisation konkurrierender Zugriffe

Probeklausur Grundlagen der Datenbanksysteme II

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL

Grundlagen von Datenbanken

Vorlesung ) Einführung

PostgreSQL Hardware und RAM Tuning

Oracle Automatic Storage Management (ASM) Best Practices

Verteilte Systeme - 5. Übung

Journaling-Dateisysteme

Software-Engineering und Datenbanken

Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)

Mehrbenutzersynchronisation

Kapitel 10: Transaktionsverwaltung

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Einführung. Kapitel 1 2 / 508

Basiseinheit Cluster. Rückgrat des gesamten Systems. Basiseinheit Strom. entsprechender Eintrag für

Datenbanken II Literatur

Datensicherheit und Hochverfügbarkeit

Replikation und Synchronisation. in mobilen Datenbanksystemen

Quellcodeverwaltung mit SubVersion

1 Die Active Directory

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Gliederung Datenbanksysteme

I P A S W I N Benutzerverwaltung. Berechtigungskonzept für die unterschiedlichen Rechte der Benutzer

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Informatik II Datenorganisation Datenbanken

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Archivierung in DBMS

Dateisystem: Einführung

Transkript:

1 / 44 Fehlerbehandlung und Recovery VU Datenbanksysteme vom 24.10. 2016 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien

2 / 44 Fehlerbehandlung und Recovery Systemkonfiguration Protokollierung (Logging) Recovery Sicherungspunkte (Checkpointing)

3 / 44 Systemkonfiguration Ersetzungsstrategien Ausschreiben von Änderungen Einbringstrategien

4 / 44 Fehlerklassifikation und Fehlerbehandlung Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion: Wirkung muss (rasch!) zurückgesetzt werden R1-Recovery (lokales Undo) Fehler mit Hauptspeicherverlust: R2-Recovery (globales Redo): Abgeschlossene TAs müssen erhalten bleiben R3-Recovery (globales Undo): Noch nicht abgeschlossene TAs müssen zurückgesetzt werden. Fehler mit Hintergrundspeicherverlust: R4-Recovery

5 / 44 Zweistufige Speicherhierarchie DBMS-Puffer Hintergrundspeicher C A. D Einlagerung Auslagerung P A A P B D P C C B

6 / 44 Ersetzung von Pufferseiten Fixieren von Seiten im Datenbankpuffer: Während des Zugriffs auf eine Seite darf diese auf keinen Fall aus dem Puffer verdrängt werden. Danach ist ein Verdrängen grundsätzlich möglich (unabhängig davon, ob die Transaktion noch weitergeht). Strategien zur Ersetzung von Pufferseiten: steal Jede nicht fixierte Seite ist prinzipiell ein Kandidat für die Ersetzung, falls neue Seiten eingelagert werden müssen. steal Seiten, die von einer noch aktiven Transaktion modifiziert wurden, dürfen nicht ersetzt werden.

7 / 44 Ausschreiben von Änderungen Strategien zum Ausschreiben von Änderungen abgeschlossener Transaktionen: force Änderungen werden zum Transaktionsende auf den Hintergrundspeicher geschrieben. force Auch nach Transaktionsende sind geänderte Seiten eventuell nicht auf den Hintergrundspeicher geschrieben worden.

8 / 44 Auswirkungen auf Recovery force force steal kein Redo kein Undo Redo kein Undo steal kein Redo Undo Redo Undo

9 / 44 Einige Gründe gegen steal/force Erzwungene Propagierung aller Änderungen zum Transaktionsende ist teuer. Manche Seiten ( hot spots ) würden ausgeschrieben werden, obwohl sie nicht aus dem Datenbankpuffer verdrängt werden. Ausschreiben aller geänderten Seiten zum Transaktionsende müsste atomar geschehen ( alles oder nichts ). Kombination steal/force ist nur möglich, wenn Transaktionen immer ganze Seiten sperren.

10 / 44 Einbringstrategien Direkte Einbringstrategie: Update-in-Place Jede Seite hat genau eine Heimat auf der Platte Wenn eine (modifizierte) Seite aus dem Datenbankpuffer verdrängt wird, wird sie genau an dieser Stelle auf die Platte geschrieben. Der alte Zustand der Seite wird dadurch überschrieben.

11 / 44 Einbringstrategien Indirekte Einbringstrategien: Twin-Block-Verfahren Beispiel Twin-Block-Anordnung der Seiten P A, P B, und P C. P 0 A P 1 A P 0 B P 1 B P 0 C P 1 C... Schattenspeicherkonzept nur geänderte Seiten werden dupliziert weniger Redundanz als beim Twin-Block-Verfahren in der Praxis zu komplex

12 / 44 Übliche Systemkonfiguration steal: Eine Seite, die von einer nicht abgeschlossenen TA modifiziert wurde, kann auf Platte ausgeschrieben werden. force: Geänderte Seiten sind bei Beendigung der Transaktion möglicherweise noch nicht auf die Platte geschrieben. update-in-place: Es gibt von jeder Seite nur eine Kopie auf der Platte. kleine Sperrgranulate (Kapitel Mehrbenutzersynchronisation) auf Datensatzebene, d.h.: eine Seite kann Datenbankänderungen sowohl von abgeschlossenen als auch von nicht abgeschlossenen Transaktionen enthalten.

13 / 44 Protokollierung (Logging) Aufbau der Log-Datei Schreiben der Log-Information (WAL-Prinzip)

14 / 44 Log-Datei Motivation: (wegen steal): Die Seiten auf der Platte können Änderungen von noch nicht abgeschlossenen Transaktionen enthalten, d.h. Undo muss möglich sein. (wegen force): Die Seiten auf der Platte enthalten eventuell nicht alle Änderungen von bereits abgeschlossenen Transaktionen, d.h.: Redo muss möglich sein. Lösung: Zusätzliche Information in Log-Datei (= Protokoll- Datei). Log-Datei enthält alle für Redo bzw. Undo erforderlichen Informationen über Änderungsoperationen. Außerdem enthält Log-Datei Informationen über Beginn und Ende von Transaktionen.

Struktur der Log-Einträge Definition Struktur der Log-Einträge: [LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN] LSN (Log Sequence Number): Eindeutige Kennung des Log-Eintrags. LSNs müssen monoton aufsteigend vergeben werden. Die chronologische Reihenfolge der Protokolleinträge kann dadurch ermittelt werden. TransaktionsID: Kennung der Transaktion, die Änderung durchgeführt hat. PageID: Kennung der Seite, die geändert wurde. Wenn eine Änderung mehr als eine Seite betrifft, müssen entsprechend viele Log-Einträge generiert werden. 15 / 44

16 / 44 Struktur der Log-Einträge Definition Struktur der Log-Einträge: [LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN] Redo: Gibt an, wie die Änderung nachvollzogen werden kann. Undo: Gibt an, wie die Änderung rückgängig gemacht werden kann. PrevLSN: Zeiger auf den vorhergehenden Log-Eintrag der jeweiligen Transaktion. Diesen Eintrag benötigt man aus Effizienzgründen (insbesondere für das lokale Undo).

Log-Datei Beispiel Schritt T 1 T 2 Log [LSN,TA,PageID,Redo,Undo,PrevLSN] 1. BOT [#1,T 1,BOT,0] 2. r(a, a 1 ) 3. BOT [#2,T 2,BOT,0] 4. r(c, c 2 ) 5. a 1 := a 1 50 6. w(a, a 1 ) [#3,T 1,P A,A-=50,A+=50,#1] 7. c 2 := c 2 + 100 8. w(c, c 2 ) [#4,T 2,P C,C+=100,C-=100,#2] 9. r(b, b 1 ) 10. b 1 := b 1 + 50 11. w(b, b 1 ) [#5,T 1,P B,B+=50,B-=50,#3] 12. commit [#6,T 1,commit,#5] 13. r(a, a 2 ) 14. a 2 := a 2 100 15. w(a, a 2 ) [#7,T 2,P A,A-=100,A+=100,#4] 16. commit [#8,T 2,commit,#7] 17 / 44

18 / 44 Logische vs. physische Protokollierung Physische Protokollierung: Redo- und Undo-Eintrag enthalten Inhalte/Zustände. before-image enthält den Zustand vor Ausführung der Operation. after-image enthält den Zustand nach Ausführung der Operation. Logische Protokollierung: Redo- und Undo-Eintrag enthalten Anweisungen für das Erreichen der Inhalte/Zustände. Das before-image wird durch Ausführung des Undo-Codes aus dem after-image generiert. Das after-image wird durch Ausführung des Redo-Codes aus dem before-image berechnet.

19 / 44 Logische vs. physische Protokollierung Speicherung der Seiten-LSN: Beim Wiederanlauf muss das DBMS erkennen können, ob auf einer bestimmten Seite das before- oder das after-image auf dem Hintergrundspeicher steht. Dies ist insbesondere bei logischer Protokollierung notwendig. Dazu wird auf jeder Seite die LSN des jüngsten diese Seite betreffenden Log-Eintrags gespeichert.

20 / 44 Schreiben der Log-Information AP 1... AP n DBMS- Code Log- Puffer DBMS Log-Datei. Datenbankpuffer Log- Archiv Datenbasis DB- Archiv

21 / 44 Schreiben der Log-Information Die Log-Information wird zwei Mal geschrieben: 1. Log-Datei für schnellen Zugriff: R1, R2 und R3-Recovery 2. Log-Archiv: R4-Recovery

22 / 44 Anordnung des Log-Ringpuffers #30 Log-Datei #40 #20 ausschreiben eintragen #41 #10 Log- Archiv

23 / 44 WAL-Prinzip Das kontinuierliche Ausschreiben aus dem Log-Ringpuffer vermeidet stoßweises Ausschreiben bei Beendigung einer Transaktion. Es muss dabei aber das WAL-Prinzip (= write ahead log) eingehalten werden: für Redo: Bevor eine Transaktion festgeschrieben (committed) wird, müssen alle zu ihr gehörenden Log-Einträge ausgeschrieben werden. für Undo: Bevor eine modifizierte Seite ausgelagert werden darf, müssen alle Log-Einträge, die zu dieser Seite gehören, ausgeschrieben werden. Dabei muss die chronologische Reihenfolge der Log-Einträge laut Log-Ringpuffer erhalten bleiben.

24 / 44 Recovery Wiederanlauf nach Systemabsturz: R2/R3-Recovery R1-Recovery R4-Recovery

Wiederanlauf nach einem Fehler Transaktionsbeginn und -ende relativ zu einem Systemabsturz Absturz T 1 T 2 t 1 t 2 t 3 Zeitachse Transaktionen der Art T 1 müssen hinsichtlich ihrer Wirkung vollständig nachvollzogen werden. Transaktionen dieser Art nennt man Winner. Transaktionen, die wie T 2 zum Zeitpunkt des Absturzes noch aktiv waren, müssen rückgängig gemacht werden. Diese Transaktionen nennt man Loser. 25 / 44

26 / 44 Drei Phasen des Wiederanlaufs Log 1. Analyse 2. Redo aller Änderungen (Winner und Loser) 3. Undo aller Loser-Änderungen 1. Analyse: Die Log-Datei wird von Anfang bis zum Ende analysiert. Ermittlung der Winner-Menge, das sind Transaktionen, für die ein BOT und ein commit in der Log-Datei gefunden wurden. Ermittlung der Loser-Menge, das sind Transaktionen für die ein BOT aber kein commit in der Log-Datei gefunden wurde.

27 / 44 Drei Phasen des Wiederanlaufs 2. Redo-Phase: Alle protokollierten Änderungen (sowohl von Winner- als auch von Loser-Transaktionen) werden in der Reihenfolge ihrer Ausführung in die Datenbasis eingebracht (d.h.: geordnet nach LSN und nicht nach Transaktionen). Durch Vergleich der LSN des Log-Eintrags mit der LSN der betroffenen Seite wird jeweils ermittelt, ob bereits das after-image auf der Platte steht. Falls log-lsn > Seiten-LSN, dann muss die Redo-Operation durchgeführt werden und die Seiten-LSN mit log-lsn überschrieben werden.

28 / 44 Drei Phasen des Wiederanlaufs 3. Undo-Phase: Die Änderungsoperationen der Loser-Transaktionen werden in umgekehrter Reihenfolge ihrer ursprünglichen Ausführung rückgängig gemacht (d.h. geordnet nach absteigender LSN und nicht nach Transaktionen). Für jede Undo-Operation kommt ein neuer Eintrag (CLR, compensation log record) in die Log-Datei (siehe unten).

29 / 44 Fehlertoleranz (Idempotenz) des Wiederanlaufs Problem: auch während der Recovery-Phase kann das System abstürzen. Anforderung: undo(undo( (undo(a)) )) = undo(a) redo(redo( (redo(a)) )) = redo(a) Realisierung der Idempotenz: Redo-Phase: mittels LSN (in jedem Log-Eintrag bzw. auf jeder Seite) Undo-Phase: mittels CLRs

30 / 44 Kompensationseinträge im Log T 1 #1 #2 #3 #4 #5 #6 #7 T 2 Redo Undo #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 UndoNxtLSN Kompensationseinträge (CLR, compensation log record) für rückgängig gemachte Änderungen und für BOT: #8 ist CLR für #7 #9 ist CLR für #4 #10 ist CLR für #2 (= BOT)

Log-Einträge nach abgeschlossenem Wiederanlauf Beispiel [#1,T 1,BOT,0] [#2,T 2,BOT,0] [#3,T 1,P A,A-=50,A+=50,#1] [#4,T 2,P C,C+=100,C-=100,#2] [#5,T 1,P B,B+=50,B-=50,#3] [#6,T 1,commit,#5] [#7,T 2,P A,A-=100,A+=100,#4] #8,T 2,P A,A+=100,#7,#4 #9,T 2,P C,C-=100,#8,#2 #10,T 2,-,-,#9,0 Erläuterung: #7, #8, #9: PrevLSN #4, #2, 0: UndoNxtLSN 31 / 44

32 / 44 Log-Einträge nach abgeschlossenem Wiederanlauf Notation: CLRs in spitzen Klammern... Definition Aufbau eines CLR: LSN, TransaktionsID, PageID, Redo, PrevLSN, UndoNxtLSN UndoNxtLSN: Verweis auf die nächste rückgängig zu machende Änderung derselben Transaktion. CLRs enthalten keine Undo-Information: Im Falle eines neuerlichen Systemabsturzes soll die Undo-Operation, für die das CLR angelegt wurde, nicht zurückgenommen sondern fortgesetzt werden. Wiederanlauf bei neuerlichem Absturz: CLRs sind immer Teil der Redo-Phase!

33 / 44 Systemabsturz während des Wiederanlaufs Beispiel Absturz nach dem CLR mit LSN = #8: Redo-Phase: Log-Records #1 bis #8. Änderungsoperationen werden natürlich nur dann durchgeführt, wenn die betroffene Seite auf der Platte eine kleinere LSN hat. Undo-Phase: Laut UndoNextLSN-Eintrag des letzten CLR muss das Undo von T 2 bei LSN = 4 fortgesetzt werden. Beispiel Absturz nach dem CLR mit LSN = #10: Redo-Phase: Log-Records #1 bis #10 (wobei wiederum die LSNs der betroffenen Seiten beachtet werden müssen). Undo-Phase: Wegen UndoNextLSN = 0 im letzten CLR ist keine Undo-Operation für T 2 mehr erforderlich.

34 / 44 R1-Recovery: Lokales Zurücksetzen einer Transaktion Erforderliche Schritte: Ermittlung des letzten Log-Eintrags dieser Transaktion (üblicherweise wird ein Zeiger auf den letzten Log-Eintrag aller aktiven Transaktionen im Hauptspeicher gehalten.) Lokales Undo: Die Änderungsoperationen dieser Transaktion werden in umgekehrter Richtung rückgängig gemacht. Genau wie beim globalen Undo werden CLRs angelegt. Effizienz: Durch die Rückwärtsverkettung mittels PrevLSN sind die Log-Einträge von T leicht zu finden. Bei realistischer Größe des Ringpuffers sind die meisten Log-Einträge der aktiven Transaktionen noch im Hauptspeicher. Lokales Undo geht somit schnell.

35 / 44 Partielles Zurücksetzen einer Transaktion Erforderliche Schritte: Im Prinzip gleich wie lokales Undo, d.h. es werden Änderungsoperationen zurückgesetzt und entsprechende CLRs angelegt. Unterschied: Es wird nicht die gesamte Transaktion zurückgesetzt sondern nur ein Teil (und zwar der letzte Teil zurück bis zum gewünschten Rücksetzpunkt). Bemerkung: Partielles Zurücksetzen ist notwendig für die Realisierung von Rücksetzpunkten (savepoints)

36 / 44 R4-Recovery / Media-Recovery R2-/R3-Recovery: bei intaktem Platteninhalt Materialisierte Datenbasis + Temporäre Log-Datei Fehler Konsistente Datenbasis Datenbasis- Archiv + Log- Archiv R4-Recovery: bei zerstörtem Platteninhalt

37 / 44 Sicherungspunkte (Checkpointing) unterschiedliche Sicherungspunkt-Qualitäten

38 / 44 Warum Sicherungspunkte? Problem bei bisher vorgestellter Recovery-Methode: Die Log-Datei wird mit der Zeit immer größer. Dementsprechend dauert der Wiederanlauf immer länger. Lösung: Durch das erzwungene Ausschreiben von geänderten Seiten wird garantiert, dass die Log-Datei erst ab einem bestimmten Log-Eintrag benötigt wird. Bemerkung: Die minimale LSN, die im Falle eines Wiederanlaufs noch benötigt wird, hängt vom Zeitpunkt und von der Qualität des Sicherungspunktes ab.

39 / 44 Transaktionskonsistente Sicherungspunkte Absturz T 1 T 2 T 3 T 4 Sicherungspunkt S i 1 Sicherungspunkt S i angemeldet Sicherungspunkt S i geschrieben Zeitachse

40 / 44 Transaktionskonsistente Sicherungspunkte Ziel: Der Platteninhalt soll alle Änderungen von Transaktionen, die zum Zeitpunkt S i abgeschlossen sind, enthalten. D.h., beim Wiederanlauf kein Redo über S i hinaus nötig. Zum Zeitpunkt S i darf es keine aktiven Transaktionen geben. D.h., beim Wiederanlauf kein Undo über S i hinaus nötig. Problem: Zwischen Anmelden und Festschreiben des Sicherungspunktes dürfen keine neuen Transaktionen gestartet werden. Das ist üblicherweise nicht akzeptabel.

41 / 44 Aktionskonsistente Sicherungspunkte Systemabsturz T 1 T 2 T 3 T 4 T 5 Sicherungspunkt Zeitachse

42 / 44 Aktionskonsistente Sicherungspunkte Idee: Alle gerade angefangenen Änderungsoperationen sollen beendet werden. Danach werden alle modifizierten Seiten (= Dirty Pages) ausgeschrieben. Es wird nur das Starten der nächsten Änderungsoperation (aber nicht das Starten neuer Transaktionen) verzögert. Wiederanlauf: Analyse-Phase setzt bei S i auf. Kein Redo über S i hinaus nötig. Im allgemeinen ist ein Undo über S i hinaus nötig, und zwar bis zur MinLSN (= die kleinste LSN der zum Sicherungszeitpunkt aktiven TAs).

43 / 44 Unscharfe (fuzzy) Sicherungspunkte Idee: Seiten sollen kontinuierlich ausgeschrieben werden. D.h., kein abruptes Ausschreiben vieler Seiten wegen des Sicherungspunktes. Statt dessen werden nur die Kennungen aller modifizierten Seiten (= Dirty Pages) ausgeschrieben. Zusätzlich wird MinDirtyPageLSN (= minimale LSN, deren Änderungen noch nicht ausgeschrieben wurden) verwaltet und bei einem Sicherungspunkt auf Platte geschrieben. Problem: hot-spots (laufend benötigte Seiten) werden lange nicht ausgeschrieben. Ausschreiben wird erzwungen, wenn eine Seite mehrmals in der Dirty Pages -Menge war.

44 / 44 Drei Sicherungspunkt-Qualitäten Zusammenfassung Log Sicherungspunkt (a) transaktionskonsistent (b) aktionskonsistent MinLSN (c) unscharf (fuzzy) MinDirtyPageLSN MinLSN Analyse Redo Undo Analyse Redo Undo Analyse Redo Undo