Beruflich Dokumente
Kultur Dokumente
Datenbanken und
Informationssysteme
Kapitel 11: Logging und Recovery
Bernhard Mitschang
Universitt Stuttgart
Wintersemester 2013/2014
Teile zu diesem Folienskript beruhen auf einer hnlichen Vorlesung, gehalten von Prof. Dr. T. Hrder am
Fachbereich Informatik der Universitt Kaiserslautern und Prof. Dr. N. Ritter am Fachbereich Informatik der
Universitt Hamburg. Fr dieses Skriptum verbleiben alle Rechte (insbesondere fr Nachdruck) bei den
Autoren.
bersicht
Einfhrung
Logging-Strategien
Einbringstrategie
Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie)
Commit-Behandlung, Gruppen-Commit
Sicherungspunkte (Checkpoints)
Crash-Recovery
Fehlermodell
Recovery-Arten
Allgemeine Restart-Prozedur
Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery
Anforderungen
Fehlerarten
Auswirkung eines
Fehlers auf
Fehlertyp
Fehlerklassifikation
Transaktionsfehler
eine Transaktion
mehrere Transaktionen
alle Transaktionen,
d.h. das gesamte
Systemverhalten
Systemfehler
Gertefehler
Katastrophe
Geplante Systemschlieung
berlast des Systems
Schwierigkeiten bei der Betriebsmittelvergabe
Verklemmung mehrerer Transaktionen
Recovery-Arten
4
Voraussetzungen
Allgemeine Probleme
Fehlererkennung
Fehlereingrenzung
Abschtzung des Schadens
Durchfhrung der Recovery (Forward-Recovery vs. Backward-Recovery)
Problemorientierte
Fehlerbehandlung
Ja
Verarbeitung
fortsetzen
Nein
Backward
Recovery
Ja
Rcksetzen
Forward
Recovery
Systemorientierte
Fehlerbehandlung
(Sicherungspunkt)
Nein
Benutzer entscheidet,
Was zu tun ist
Forward
Recovery
manuell
7
Systemkomponenten
AP1
AP2
APn
temporre
Log-Datei
Log-Puffer
DBMS
DB-Puffer
Archiv-Log
- Archiv-Kopie + Archiv-Log DB
permanente
Datenbank
Archiv-Kopie der DB
Transaktionsparadigma verlangt
Alles-oder-Nichts-Eigenschaft von Transaktionen
Dauerhaftigkeit erfolgreicher nderungen
Zielzustand nach erfolgreicher Recovery
jngster transaktionskonsistenter DB-Zustand
Durch die Recovery-Aktionen ist der jngste Zustand vor Erkennen des Fehlers
wiederherzustellen, der allen semantischen Integrittsbedingungen entspricht, der also
ein mglichst aktuelles, exaktes Bild der Miniwelt darstellt.
AW
DB
9
Transaktions-Recovery (R1)
Undo T1
Recovery
temporre
Log-Datei
Undo T1
T1
Recovery
Savpoint
temporre
Log-Datei
10
Crash-Recovery (R2)
Redo T1
T2
Undo T2
T3
Recovery
RedoT3
Systemfehler
temporre
Log-Datei
permanente
Datenbank
11
Medien-Recovery (R3)
T1
Redo T1
T3
RedoT3
Recovery
Gertefehler
temporre
Log-Datei
Archivkopie
der DB
permanente
Datenbank
12
Katastrophen-Recovery (R4)
13
bersicht
Einfhrung
Logging-Strategien
Einbringstrategie
Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie)
Commit-Behandlung, Gruppen-Commit
Sicherungspunkte (Checkpoints)
Crash-Recovery
Fehlermodell
Recovery-Arten
Allgemeine Restart-Prozedur
Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery
14
Logging
Aufgaben
Sammlung redundanter Daten bei nderungen im Normalbetrieb (DO) als
Voraussetzung fr Recovery
Einsatz im Fehlerfall (Undo-, Redo-Recovery)
Do-Redo-Undo-Prinzip
DB-Zustandalt
DO
DB-Zustandneu
DB-Zustandalt
Log-Satz
REDO
Log-Satz
DB-Zustandneu
DB-Zustandneu
Log-Satz
UNDO
DB-Zustandalt
CLR
Logging-Verfahren
Logging
logisch
bergangsLogging
SeitenLogging
physisch
kombiniert
(byte-orientiert)
(physiological)
ZustandsLogging
...
bergangsLogging
EintragsLogging
16
Logisches Logging
17
Physisches Logging
einfgen
Seitenkopf
genderte Eintrge
18
einfachste Form
der Implementierung:
Seiten-Logging
Freispeicherverwaltung FPA
Zuordnungstabelle ZT
fi
1 2 3
1
2
3
i
Datenseite Pi
X1
j Adr(X1)
m
Datenseite
ZT
FPA
n Zugriffspfadseiten
neues Pi
Adr(X1)
fi
n DSneu
UNDO-Log
altes Pi
alter Inhalt
alter Inhalt
n DSsalt
REDO-Log
neues Pi
Adr(X1)
fi
n DSneu
19
Logging: Anwendungsbeispiel
bergnge
physisches Logging
Seiten-Logging: Protokollierung der
Before- und After-Images
1. A1 und A2
2. A2 und A3
bergangs-Logging
1. A1 A2
2. A2 A3
A3 (A2 A3) = A2
A2 (A1 A2) = A1
20
Physiologisches Logging
Kombination aus physischer und logischer Protokollierung
physical-to-a-page, logical-within-a-page
Protokollierung von elementaren Operationen innerhalb einer Seite
jeder Log-Satz bezieht sich auf eine Seite
Technik ist mit Update-in-Place vertrglich
21
RestartAufwand im
Fehlerfall
(Crash)
SeitenzustandsLogging
--
Seitenbergangs
-Logging
(Differenzen)
Eintrags-Logging
++
--
physiologisches
Logging
Logisches
Logging
22
Sicherungspunkt-Stze
23
24
Temporre Log-Datei
Beispiel
26
Temporre Log-Datei
27
Temporre Log-Datei
im DB-Puffer
Beginn der ltesten TA
(MinLSN)
1 2 3
...
A
logischer
Log-Anfang
...
E
aktuelles
logisches
Log-Ende
28
Beispiel DB2
Parameter
Bereich
Beschreibung
logbufsz
DB
logprimary
DB
logsecond
DB
maximale Anzahl
sekundrer LogDateien
logfilsiz
DB
logpath
DB
mirrorlogpath
DB
Pfad fr gespiegelte
Log-Dateien
logretain
DB
29
bersicht
Einfhrung
Logging-Strategien
Einbringstrategie
Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie)
Commit-Behandlung, Gruppen-Commit
Sicherungspunkte (Checkpoints)
Crash-Recovery
Fehlermodell
Recovery-Arten
Allgemeine Restart-Prozedur
Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery
30
Wichtige Abhngigkeiten
Einbringstrategie
direktes Einbringen von nderungen (non-atomic)
verzgertes Einbringen von nderungen (atomic)
Ersetzungsstrategie
Verdrngen schmutziger Seiten (steal)
nur Verdrngung von Seiten abgeschlossener TAs (nosteal)
Ausschreibstrategie
Ausschreiben notwendigerweise bei Commit (force)
Ausschreiben mglicherweise nach Commit (noforce)
Seitenzuordnungsstrukturen
Pufferverwaltung
Synchronisation
31
Commit-Regel (Force-Log-at-Commit)
Bevor das Commit einer TA ausgefhrt werden kann, sind fr ihre
nderungen ausreichende Redo-Informationen (z. B. After-Images) in der
Log-Datei zu sichern.
32
Einbringstrategie
Undo- RedoInfo
Info
U(C) R(C') A
Log-Puffer U(B)
DB-Seiten
B'
DB-Puffer
R(B')
C'
U(C)
temp. Log-Datei
DB
C'
WAL-Prinzip:
Write Ahead Log fr Undo-Info
U(B) vor B und U(C) vor C'
Commit-Regel:
Ausschreiben der Redo-Info
sptestens bei Commit
R(C) + R(B) vor Commit
33
Einbringstrategie
atomic / verzgert
z. B. in System R, SQL/DS
genderte Seite wird in separaten Block auf Platte geschrieben, Einbringen in
die DB erfolgt spter
Seitentabelle gibt aktuelle Adresse einer Seite an
verzgertes, atomares Einbringen mehrerer nderungen ist durch Umschalten
von Seitentabellen mglich
aktions- oder transaktionskonsistente DB auf Platte
logisches Logging anwendbar
34
Einbringstrategie
atomic / verzgert
Undo- RedoInfo
Info
U(C) R(C') A
Log-Puffer U(B)
DB-Seiten
B'
DB-Puffer
R(B')
C'
a
laufende
c'
alte
R
a
temp. Log-Datei
DB
C'
Seitentabelle
WAL-Prinzip:
Write Ahead Log fr Undo-Info
U(B) und U(C) vor Sicherungspunkt
Commit-Regel:
Ausschreiben der Redo-Info
sptestens bei Commit
R(C) + R(B) vor Commit
35
Ersetzungsstrategie
nosteal
Seiten mit schmutzigen nderungen drfen nicht ersetzt werden
Probleme bei langen nderungs-TA
es ist keine Undo-Recovery auf der permanenten DB vorzusehen
36
Ausschreibstrategie
noforce
kein Durchschreiben der nderungen bei EOT
beim Commit werden lediglich Redo-Informationen in die Log-Datei
geschrieben (Commit-Regel)
Redo-Recovery nach Rechnerausfall
37
Ersetzungsstrategie/Ausschreibstrategie
force
noforce
steal
nosteal
Undo-Recovery
keine Redo-Recovery
Undo-Recovery
Redo-Recovery
keine Undo-Recovery
Redo-Recovery
38
Sperrverwaltung
DB
r1
r1
r1
r2
r2
r2
r1 -> r1
T1
r2 -> r2
T2
commit
T2
39
Commit-Behandlung
Forderungen:
nderungen einer TA sind mit Commit zuzusichern
andere TA drfen nderungen erst sehen, wenn Durchkommen der
ndernden TA gewhrleistet ist
(Problem des rekursiven Zurcksetzens)
Beginn der Commit-Behandlung
T1
Unlock(x)
w(x)
T2
r(x)
EOT
40
Commit-Behandlung
zweiphasige Commit-Bearbeitung:
Phase 1: Wiederholbarkeit der TA sichern
Schreiben der Log-Daten
ggf. noch nderungen sichern
(inkl. Commit-Satz) auf Platte
Commit-Satz auf Log schreiben
Phase 2: nderungen sichtbar machen
Freigabe der Sperren
Benutzer kann nach Phase 1 vom erfolgreichen Ende der TA
informiert werden (Ausgabenachricht)
Beispiel
Commit Phase 1 bei force, steal:
1. Before-Images in Log-Datei schreiben
2. Force der genderten DB-Seiten
3. After-Images (fr Archiv-Log) und Commit-Satz schreiben
Commit Phase 1 bei noforce:
lediglich 3. notwendig
Sperrfreigabe
41
Gruppen-Commit
Sperrfreigabe
Gruppen-Commit
42
Pr-Commit
Pr-Commit
43
Sicherungspunkte / Checkpoints
Motivation:
Manahme zur Begrenzung des Redo-Aufwands nach Systemfehlern (noforce)
ohne Sicherungspunkte mssten potentiell alle nderungen seit Start des
DBMS wiederholt werden
Besonders kritisch: Hot-Spot-Seiten
x
S1
x
x
Start
des
DBMS
x x
xx x
S2
S3
Sp
Systemausfall
t
44
Sicherungspunkte / Checkpoints
Verwaltungsinformation
Log-Datei
- BEGIN_CHKPT-Satz
- Sicherungspunkt-Informationen, z.B. Liste der aktiven TA
- END_CHKPT-Satz
non-atomic
- Zustand der permanenten DB enthlt alle ausgeschriebenen (eingebrachten)
nderungen bis zum Crash
45
Direkte Sicherungspunkte
alle genderten Seiten im DB-Puffer
werden in die permanente DB
eingebracht
Redo-Recovery beginnt bei letztem
Sicherungspunkt
Nachteil: lange Totzeit des Systems,
da whrend des Sicherungspunktes
keine nderungen durchgefhrt
werden knnen
Problem wird durch groe
Hauptspeicher verstrkt
Transaktionskonsistente oder
aktionskonsistente Sicherungspunkte
Indirekte/Unscharfe
Sicherungspunkte
(Fuzzy Checkpoints)
kein Hinauszwingen genderter
Seiten
nur Statusinformationen
(Pufferbelegung, Menge aktiver TA,
offene Dateien etc.) werden in die
Log-Datei geschrieben
sehr geringer SicherungspunktAufwand
Redo-Informationen vor letztem
Sicherungspunkt sind i. A. noch zu
bercksichtigen
Sonderbehandlung von Hot-SpotSeiten
46
Transaktionsorientierte Sicherungspunkte
Systemfehler
T1
T2
T3
c (T1)
c (T2)
Sicherungspunkte
Eigenschaften
EOT-Behandlung erzwingt das
Ausschreiben aller genderten
Seiten der TA aus dem DBPuffer
bernahme aller nderungen
in DB
Vermerk in Log-Datei
nur atomic ermglicht
atomares Einbringen mehrerer
Seiten
zumindest bei direktem
Einbringen der Seiten ist
demnach Undo-Recovery
vorzusehen (steal)
Abhngigkeit:
non-atomic, force steal
47
Transaktionskonsistente Sicherungspunkte
TCC = transaction-consistent
checkpoint (logisch konsistent)
Sicherungspunkt bezieht sich immer
auf alle TA
Sicherungspunkt
anmelden
Sicherungspunkt
erzeugen
ci
Eigenschaften
Ausschreiben ist bis zum Ende aller
aktiven nderungs-TA zu verzgern
neue nderungs-TA mssen warten,
bis Sicherungspunkt erzeugt
Crash-Recovery startet bei letztem
Sicherungspunkt
T1
T2
T3
T4
ci-1
t
ci
Systemfehler
48
Aktionskonsistente Sicherungspunkte
Sicherungspunkt
erzeugen
ci
T1
T2
Eigenschaften:
- keine nderungsanweisungen
whrend des Sicherungspunktes
- geringere Totzeiten als bei TCC
- Redo-Recovery wird durch
Sicherungspunkt begrenzt
- Undo-Recovery wird nicht durch
letzten Sicherungspunkt begrenzt
sondern durch MinLSN (LSN des
ersten Log-Eintrags der zum
Sicherungspunkt ltesten TA)
T3
T4
Totzeit des DBS c
i
fr Operationen
ci-1
Systemfehler
t
49
S1
write
write
Problem
Sicherungspunkt
S2
S3
Log
10
20
30
40
50
60
70
(LSN)
50
Unscharfe Sicherungspunkte
Sicherungspunkt-Information
MinDirtyPageLSN,
Liste der aktiven TA,
LSN ihres ersten Eintrags (MinLSN),
...
genderte Seiten werden asynchron ausgeschrieben
ggf. Kopie der Seite anlegen (fr Hot-Spot-Seiten)
Seite ausschreiben
StartLSN anpassen / zurcksetzen
Eigenschaften:
DB auf Platte bleibt fuzzy, d.h. nicht aktionskonsistent
nur bei Update-in-Place (non-atomic) relevant
Aufwand fr Sicherungspunkt reduziert
Abhngigkeit: atomic FuzzyCP
51
DB-Recovery-Verfahren
EinbringStrategie
non-atomic
nosteal
force
noforce
Sicherungspunkt
TOC
Systembeispiele
IMS
DMS 1100
EOTBehandlung
DB2
Adabas
Tandem
UDS
ARIES
noforce
TCC Fuzzy
DB Cache
steal
IMS FP
Seitenersetzung
atomic
steal
nosteal
force
noforce
force
noforce
TOC
TCC ACC
TOC
TCC
TOSP
TWIST
AIM
System R
SQL/DS
52
Beispiel DB2
Gruppen-Commit
fasst mincommit TA zusammen
maximale Verzgerung: 1 Sek.
Parameter
mincommit
Soft Checkpoints
Unscharfe Sicherungspunkte
Vorgabe hinsichtlich der Anzahl der
fr die Recovery relevanten
Log-Dateien steuert die Hufigkeit
softmax
Bereich
Beschreibung
DB
DB
Steuert die
Hufigkeit der
Checkpoints
53
bersicht
Einfhrung
Logging-Strategien
Einbringstrategie
Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie)
Commit-Behandlung, Gruppen-Commit
Sicherungspunkte (Checkpoints)
Crash-Recovery
Fehlermodell
Recovery-Arten
Allgemeine Restart-Prozedur
Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery
54
Crash-Recovery
Ziel
bei atomic
permanente DB entspricht Zustand
des letzten erfolgreichen Einbringens
(Sicherungspunkt)
zumindest aktionskonsistent
DML-Befehle ausfhrbar
logisches Logging mglich
force:
- kein Redo
noforce:
- transaktionskonsistentes Einbringen
Redo, jedoch kein Undo
- aktionskonsistentes Einbringen
Undo + Redo
56
Allgemeine Restart-Prozedur
1. Analyse-Phase
vom letzten Sicherungspunkt bis zum Log-Ende
Bestimmung von Gewinner- und Verlierer-TA sowie der Seiten, die von ihnen
gendert wurden
2. Undo-Phase
Rcksetzen der Verlierer-TA durch Rckwrtslesen des Logs bis zum BOTSatz der ltesten Verlierer-TA
UNDO nur, wenn Seiten-LSN Log-Satz-LSN
3. Redo-Phase
Vorwrtslesen des Log: Startpunkt abhngig vom Sicherungspunkt-Typ
REDO nur, wenn Seiten-LSN < Log-Satz-LSN
selektives Redo bei Seitensperren (redo winners) oder vollstndiges Redo
(repeating history) mglich
temporre Log-Datei wird 3-mal gelesen
57
Allgemeine Restart-Prozedur
Sicherungspunkt
Log
Analyse
a) transaktionskonsistent
Undo
Redo
Analyse
b) aktionskonsistent
MinLSN
Undo
Redo
Analyse
c) unscharf (fuzzy)
MinLSN
MinDirtyPageLSN
Undo
Redo
58
bersicht
Einfhrung
Logging-Strategien
Einbringstrategie
Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie)
Commit-Behandlung, Gruppen-Commit
Sicherungspunkte (Checkpoints)
Crash-Recovery
Fehlermodell
Recovery-Arten
Allgemeine Restart-Prozedur
Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery
59
Platten-Recovery
Spiegelplatten
schnellste und einfachste Lsung
hohe Speicherkosten
Doppelfehler nicht auszuschlieen
Alternative
Archivkopie + Archiv-Log
sind lngerfristig verfgbar zu halten (auf Band)
Problem von Alterungsfehlern
- Fhren von Generationen der Archivkopie
- Duplex-Logging fr Archiv-Log
Archivkopie
ArchivLog
Temporrer
Log
DB
Alternativen:
Inkrementelles Dumping (a)
- Ableiten neuer Generationen aus
Urkopie
- nur nderungen seit der letzten ArchivKopie protokollieren
- Offline-Erstellung einer aktuelleren
Kopie
Unterschiedliche Konsistenzgrade:
fuzzy dump (b1)
- Kopieren der DB im laufenden
Betrieb, kurze Lesesperren
- bei Plattenfehler Archiv-Log ab Beginn
der Dump-Erstellung anzuwenden
transaktionskonsistente Archivkopie
(b3)
- Voraussetzung bei logischem
Transaktions-Logging
- Black-/White-Verfahren
- Copy-on-Update-Verfahren
61
Black-/White-Verfahren
Ziel
Erzeugung transaktionskonsistenter
Archiv-Kopien
Rcksetzregel
Transaktionen, die sowohl weie als
auch schwarze Objekte gendert
haben (graue Transaktionen),
werden zurckgesetzt
Farbtest am Transaktionsende
Quelle: [Pu86]
62
Black-/White-Verfahren
Beispiel
P1
P2
DumpProzess
P3 P4
P5 P6 P7
w rite
(in Archiv-Kopie)
P5
P7
weie Transaktion
T1
P2
P1
T2
P1
T3
schwarze
Transaktion
P5
graue
Transaktion
63
Black-/White-Verfahren
Erweiterungen zur Vermeidung von Rcksetzungen
Turn-White-Strategien (Turn gray transactions white)
- fr graue Transaktionen werden nderungen schwarzer Objekte nachtrglich in
Archiv-Kopie geschrieben
- Problem: transitive Abhngigkeiten
- Alternative: alle nderungen schwarzer Objekte seit Dump-Beginn werden noch
geschrieben (repaint all)
- Problem: Archiv-Kopie-Erstellung kommt u.U. nie zu Ende
Turn-Black-Strategien
- whrend der Erstellung einer Archiv-Kopie werden keine Zugriffe auf weie Objekte
vorgenommen
- ggf. warten, bis Objekt gefrbt wird
64
Zusammenfassung
NOFORCE-Strategien
sind FORCE-Verfahren vorzuziehen
erfordern den Einsatz von Checkpoint-Manahmen zur Begrenzung des Redo-Aufwandes
Fuzzy Checkpoints erzeugen den geringsten Overhead im Normalbetrieb
STEAL-Methoden
65
66