© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Mehrbenutzersynchronisation
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Transaktionsverwaltung
Transaktionsverwaltung
Kapitel 8 Anfragebearbeitung
© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.
Moderne Betriebliche Anwendungen von Datenbanksystemen
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 22: Grundlagen der Crash Recovery.
Transaktionen in verteilten Datenbanken
Prof. Dr. T. Kudraß1 Recovery. Prof. Dr. T. Kudraß2 Fehlerarten: Transaktionsfehler Transaktionsfehler –Freiwilliger Transaktionsfehler durch eine ROLLBACK-Anweisung.
Access 2000 Datenbanken.
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Kapitel 13: Mehrbenutzersynchronisation
Kapitel 14: Recovery Oliver Vornberger
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Zuverlässigkeit und Recovery in der Segmentschicht
Universität Karlsruhe (TH) © 2008 Univ,Karlsruhe, IPD, Prof. LockemannDBI 7 Kapitel 7 Zugriffsschicht: Zuverlässigkeit.
Recovery AIFB SS Recovery 5.1 Fehler im Datenbankbetrieb(1/10) (1)Transaktionsfehler (TF) (2)Systemfehler (SF) (3)Speicherfehler (SpF) Fehlerfallen.
ausdrucksschwächeres
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
Recovery AIFB SS Einbringstrategie der Pufferverwaltung(1/4) Die bestimmt, wann geänderte Seiten in die Datenbank eingebracht werden. Sie.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Implementierung von S2PL (1) Scheduler als Verwalter von Sperren auf Datenelementen sowie Warteschlangen für Sperren (Sperren-Verwalter). Transaktion 1Transaktion.
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 21: Concurrency Control.
Mehrbenutzersynchronisation
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
Vorlesung #9 Fehlerbehandlung
Vorlesung Datenbanksysteme vom Physische Datenorganisation
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Transaktion Huang Zhenhao FU Shuai.
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Vorlesung Datenbanksysteme WS 2.0 Christoph Koch (Subject: DBVO:...
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Übung: Transaktionale Systeme
Des eenen sin Uhl is des annern sin Nachtigall Wie ein Daten-GAU zur Softwareentwicklung beiträgt.
Mehrbenutzersynchronisation
Fehlerbehandlung (Recovery)
Transaktionsverwaltung
Wiederanlauf nach Systemzusammenbruch Aufgabe: Bei Noforce-Strategie Wiederholung aller noch nicht in die Datenbasis eingebrachten Änderungen bereits abgeschlossener.
Recovery    AIFB SS Grundlegende Annamen(1/2) Um den Erfolg der der Recovery-Maßnahmen zu gewährleisten, werden folgende Annahmen.
Transaktionen in verteilten Datenbanken
Sicherung gegen Medienverlust (1) Medienverlust = Verlust der Datenbasis und/oder des Protokolls. Vorbeugung durch periodische Sicherung von Datenbasis.
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
unpin(a,b,c) flush(a,b,c)
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Seminar zur Administration von Datenbankmanagementsystemen 8. 6
Prof. Dr. T. Kudraß1 Transaktionsmanagement - Einführung.
Datenbanktechnik 1 Datenbanktechnik II Kapitel 3.0 bis 4.0.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Übung – Recovery Manager Undo Redo Algorithmus
Vorlesung #7 Fehlerbehandlung
Transaktionsabbruch, System Crash, Media Failure
Vorlesung #7 Fehlerbehandlung
Vorlesung #7 Fehlerbehandlung
Vorlesung #10 Fehlerbehandlung
Redo/Undo Ersetzungsstrategie: LRU
 Präsentation transkript:

© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery 2.Fehler mit Hauptspeicherverlust Abgeschlossene TAs müssen erhalten bleiben (R2-Recovery) Noch nicht abgeschlossene TAs müssen zurückgesetzt werden (R3-Recovery) 3.Fehler mit Hintergrundspeicherverlust R4-Recovery Fehlerklassifikation

© A. Kemper / A. Eickler2 Zweistufige Speicherhierarchie C A D DBMS-Puffer A D C B PAPA PBPB PCPC Hintergrundspeicher Einlagerung Auslagerung

© A. Kemper / A. Eickler3 Die Speicherhierarchie Ersetzung von Puffer-Seiten ¬steal: Bei dieser Strategie wird die Ersetzung von Seiten, die von einer noch aktiven Transaktion modifiziert wurden, ausgeschlossen. steal: Jede nicht fixierte Seite ist prinzipiell ein Kandidat für die Ersetzung, falls neue Seiten eingelagert werden müssen. Einbringen von Änderungen abgeschlossener TAs Force-Strategie: Änderungen werden zum Transaktionsende auf den Hintergrundspeicher geschrieben. ¬force-Strategie: geänderte Seiten können im Puffer verbleiben.

© A. Kemper / A. Eickler4 Auswirkungen auf Recovery force¬force ¬steal kein Undo kein Redo Redo kein Undo steal kein Redo Undo Redo Undo

© A. Kemper / A. Eickler5 Einbringungsstrategie Update in Place jede Seite hat genau eine Heimat auf dem Hintergrundspeicher der alte Zustand der Seite wird überschrieben Twin-Block-Verfahren Anordnung der Seiten P A, P B, und P C. Schattenspeicherkonzept nur geänderte Seiten werden dupliziert weniger Redundanz als beim Twin-Block-Verfahren

© A. Kemper / A. Eickler6 Hier zugrunde gelegte Sytemkonfiguration steal -dreckige Seitenkönnen in die Datenbank (auf Platte) geschrieben werden ¬force -geänderte Seiten sind möglicherweise noch nicht auf die Platte geschrieben update-in-place -Es gibt von jeder Seite nur eine Kopie auf der Platte Kleine Sperrgranulate -auf Satzebene -also kann eine Seite gleichzeitig dreckige Daten (einer noch nicht abgeschlossenen TA) und committed updates enthalten -das gilt sowohl für Puffer – als auch Datenbankseiten

© A. Kemper / A. Eickler7 Protokollierung von Änderungsoperationen LSN (Log Sequence Number), eine eindeutige Kennung des Log-Eintrags. LSNs müssen monoton aufsteigend vergeben werden, die chronologische Reihenfolge der Protokolleinträge kann dadurch ermittelt werten Transaktionskennung TA der Transaktion, die die Änderung durchgeführt hat. PageID die Kennung der Seite, auf der die Änderungsoperationen vollzogen wurde. Wenn eine Änderung mehr als eine Seite betrifft, müssen entsprechend viele Log-Einträge generiert werden. Struktur der Log-Einträge [LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN]

© A. Kemper / A. Eickler8 Protokollierung von Änderungsoperationen II Die Redo -Information gibt an, wie die Änderung nachvollzogen weden kann. Die Undo -Information beschreibt, wie die Änderung rückgängig gemacht werden kann. PrevLSN, einen Zeiger auf den vorhergehenden Log-Eintrag der jeweiligen Transaktion. Diesen Eintrag benötigt man aus Effizienzgründen. Struktur der Log-Einträge II [LSN, TransaktionsID, PageID, Redo, Undo, PrevLSN]

© A. Kemper / A. Eickler9 Beispiel einer Log-Datei SchrittT1T1 T2T2 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 w(A,a 1 )[#3,T 1,P A,A-=50,A+=50,#1] 7.c 2 := c w(C,c 2 )[#4,T 2,P C,C+=100,C-=100,#2] 9.r(B,b 1 ) 10.b 1 := b 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 – w(A,a 2 )[#7,T 2,P A,A-=100,A+=100,#4] 16.commit[#8,T 2,commit,#7]

© A. Kemper / A. Eickler10 Logische oder physische Protokollierung Physische Protokollierung Es werden Inhalte / Zustände protokolliert: 1.before-image enthält den Zustand vor Ausführung der Operation 2.after-image enthält den Zustand nach Ausführung der Operation Logische Protokollierung das Before-Image wird durch Ausführung des Undo- Codes aus dem After-Image generiert und das After-Image durch Ausführung des Redo-Codes aus dem Before-Image berechnet. Speicherung der Seiten-LSN Die Herausforderung besteht darin, beim Wiederanlauf zu entscheiden, ob man das Before- oder das After-Image auf dem Hintergrundspeicher vorgefunden hat. Dazu wird auf jeder Seite die LSN des jüngsten diese Seite betreffenden Log-Eintrags gespeichert.

© A. Kemper / A. Eickler11 Schreiben der Log-Information DBMS- Code AP 1 AP n · · · Log- Puffer Datenbank- Puffer Log-DateiDatenbasis Log- Archiv DB- Archiv

© A. Kemper / A. Eickler12 Schreiben der Log-Information Die Log-Information wird zweimal geschrieben 1.Log-Datei für schnellen Zugriff -R1, R2 und R3-Recovery 2.Log-Archiv -R4-Recovery

© A. Kemper / A. Eickler13 Anordnung des Log-Ringpuffers #10 #30 #20 #41 #40 Log-Datei Log- Archiv... ausschreiben eintragen...

© A. Kemper / A. Eickler14 Das WAL-Prinzip Write Ahead Log-Prinzip 1.Bevor eine Transaktion festgeschrieben (committed) wird, müssen alle zu ihr gehörenden Log-Einträge ausgeschrieben werden. 2.Bevor eine modifizierte Seite ausgelagert werden darf, müssen alle Log-Einträge, die zu dieser Seite gehören, in das temporäre und das Log-Archiv ausgeschrieben werden.

© A. Kemper / A. Eickler15 Wiederanlauf nach einem Fehler Transaktionen der Art T 1 müssen hinsichtlich ihrer Wirkung vollständig nachvollzogen werden. Transakionen 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 bezeichnen wir als Loser. Zeitachse T2T2 T1T1 t1t1 t2t2 t3t3 Absturz Transaktionsbeginn und – ende relativ zu einem Systemabsturz

© A. Kemper / A. Eickler16 Drei Phasen des Wiederanlaufs 1.Analyse: Die temporäre Log-Datei wird von Anfang bis zum Ende analysiert, Ermittlung der Winner-Menge von Transaktionen des Typs T 1 Ermittlung der Loser-Menge von Transaktionen der Art T 2. 2.Wiederholung der Historie: alle protokollierten Änderungen werden in der Reihenfoöge ihrer Ausführung in die Datenbasis eingebracht. 3.Undo der Loser: Die Änderungsoperationen der Loser-Transaktionen werden in umgekehrter Reihenfolge ihrer ursprünglichen Ausführung rückgängig gemacht.

© A. Kemper / A. Eickler17 Wiederanlauf in drei Phasen Log 1.Analyse 1.Redo aller Änderungen (Winner und Loser) 1.Undo aller Loser-Änderungen Fehlertoleranz (Idempotenz) des Wiederanlaufs undo(undo(...(undo(a))...)) = undo(a) redo(redo(...(redo(a))...)) = redo(a) auch während der Recoveryphase kann das System abstürzen

© A. Kemper / A. Eickler18 Sicherungspunkte Zeitachse T1T1 Absturz Transaktionskonsistente Sicherungspunkte Sicherungspunkt S i-1 Sicherungspunkt S i angemeldet Sicherungspunkt S i geschrieben T2T2 T3T3 T4T4

© A. Kemper / A. Eickler19 Drei unterschiedliche Sicherungspunkt-Qualitäten Log Sicherungspunkt (a) transaktionskonsistent (b) aktionskonsistent (c) unscharf (fuzzy) nicht besprochen Analyse Redo Undo Analyse Redo Undo Analyse Redo Undo MinDirtyPageLSN MinLSN

© A. Kemper / A. Eickler20 Aktionskonsistente Sicherungspunkte Zeitachse T1T1 Systemabsturz T2T2 T4T4 T5T5 Sicherungspunkt Transaktionsausführung relativ zu einem aktions- konsistenten Sicherungspunkt und einem Systemabsturz T3T3

© A. Kemper / A. Eickler21 R4-Recovery / Media-Recovery Recovery nach einem Verlust der materialisierten Datenbasis materialisierte Datenbasis Datenbasis- Archiv Log- Archiv temporäre Log-Datei Fehler konsistente Datenbasis

© A. Kemper / A. Eickler22 Recovery in SqlServer: Full Recovery Model (DB-Property) Backup function Automatisierung (SQLServer Agent, Management-function)