chapter11.pdf
-
Upload
miki-bundesmaca -
Category
Documents
-
view
9 -
download
1
Transcript of chapter11.pdf
-
Anwendersoftware (AS) Anwendersoftware (AS)
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.
-
Logging und Recovery
2
bersicht
Einfhrung Fehlermodell Recovery-Arten
Logging-Strategien physisches/logisches und Zustands-/bergangs-Logging Eintrags- vs. Seiten-Logging Aufbau der Log-Datei
Klassifikation von Recovery-Verfahren Einbringstrategie Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie) Commit-Behandlung, Gruppen-Commit Sicherungspunkte (Checkpoints)
Crash-Recovery Allgemeine Restart-Prozedur Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery Erstellung von Archivkopien
-
Logging und Recovery
3
Anforderungen
Aufgabe des DBMS Automatische Behandlung aller erwarteten Fehler Begrenzung und Behebung der zur Laufzeit mglichen Fehler
(wie auch bei anderen fehlertoleranten Systemen) Reparatur der statischen Struktur der DB
Erwartete Fehler DB-Operation wird zurckgewiesen Commit wird nicht akzeptiert Stromausfall Gerte funktionieren nicht (Spur, Zylinder, Platte defekt) ...
-
Logging und Recovery
4
Fehlerarten
Auswirkung eines Fehlers auf
Fehlertyp Fehler-klassifikation
eine Transaktion Verletzung von Systemrestriktionen Versto gegen Sicherheitsbestimmungen bermige Betriebsmittelanforderungen Anwendungsbedingte Fehler z. B. falsche Operationen und Werte
Transaktions-fehler
mehrere Transaktionen Geplante Systemschlieung berlast des Systems Schwierigkeiten bei der Betriebsmittelvergabe Verklemmung mehrerer Transaktionen
alle Transaktionen, d.h. das gesamte Systemverhalten
Hardware-Fehler, Software-Fehler, Umgebungsfehler Systemzusammenbruch mit Verlust der Hauptspeicherinhalte
Systemfehler
Zerstrung von Sekundrspeichern Gertefehler
Zerstrung des Rechenzentrums Katastrophe
Recovery-Arten
-
Logging und Recovery
5
Voraussetzungen
Allgemeine Probleme Fehlererkennung Fehlereingrenzung Abschtzung des Schadens Durchfhrung der Recovery (Forward-Recovery vs. Backward-Recovery)
Voraussetzungen fr die Wiederherstellung der Daten
Sammeln redundanter Informationen whrend des Normalbetriebs (Logging) quasi-stabiler Speicher fehlerfreier DBMS-Code fehlerfreie Log-Daten Unabhngigkeit der Fehler
-
Logging und Recovery
6
Forward-Recovery vs. Backward Recovery
Wie soll Recovery durchgefhrt werden? Forward-Recovery
Non-Stop-Paradigma (Prozesspaare usw.) i. A. nicht anwendbar Fehlerursache hufig falsche Programme, Eingabefehler u. . durch Fehler unterbrochene TA sind zurckzusetzen
Backward-Recovery setzt voraus, dass auf allen Abstraktionsebenen genau definiert ist, auf
welchen Zustand die DB im Fehlerfall zurckzusetzen ist Zurcksetzen auf konsistenten Zustand und Wiederholung
-
Logging und Recovery
7
Forward-Recovery vs. Backward Recovery
Normale Verarbeitung
Fehler entdeckt
Rcksetzen
Benutzer entscheidet, Was zu tun ist
Verarbeitung fortsetzen
Problemorientierte Fehlerbehandlung
Systemorientierte Fehlerbehandlung (Sicherungspunkt)
Backward Recovery
Ja
Ja
Nein
Forward Recovery
Forward Recovery manuell
Nein
-
Logging und Recovery
8
Systemkomponenten
Daten werden in die physische DB geschrieben und in die materialisierte DB eingebracht
Pufferung von Log-Daten im Hauptspeicher (Log-Puffer) Ausschreiben sptestens bei Commit
Einsatz der Log-Daten Temporre Log-Datei zur Behandlung
von Transaktions- und Systemfehlern - DB + temp. Log DB
Behandlung von Gertefehlern - Archiv-Kopie + Archiv-Log DB
Archiv-Kopie der DB
temporre Log-Datei
Archiv-Log
permanente Datenbank
AP 1 AP 2 AP n
DBMS
DB-Puffer
Log-Puffer
-
Logging und Recovery
9
Zielzustand nach Recovery
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.
Zustand der Systemumgebung? Betriebssystem, Anwendungssystem, andere Komponenten
Umgebung
AW
DB
-
Logging und Recovery
10
Transaktions-Recovery (R1)
Zurcksetzen einzelner (noch nicht abgeschlossener) Transaktionen im laufenden Betrieb (Transaktionsfehler, Deadlock)
Arten Vollstndiges Zurcksetzen auf Transaktionsbeginn (TA-UNDO)
Partielles Zurcksetzen auf Rcksetzpunkt (Savepoint) innerhalb der TA
T1 Undo T1
Recovery
Undo T1 Recovery
T1
Savpoint
temporre Log-Datei
temporre Log-Datei
-
Logging und Recovery
11
Crash-Recovery (R2)
Recovery nach einem Systemfehler Wiederherstellen des jngsten transaktionskonsistenten DB-Zustands Notwendige Aktionen
(partielles) REDO fr erfolgreiche Transaktionen, d.h. Wiederholung verloren gegangener nderungen
UNDO aller durch Ausfall unterbrochenen Transaktionen d.h. Entfernen der nderungen aus der permanenten DB
T1
T2
T3
Systemfehler Recovery
Redo T1
Undo T2
RedoT3
temporre Log-Datei
permanente Datenbank
-
Logging und Recovery
12
Medien-Recovery (R3)
Recovery nach Gertefehler Spiegelplatten bzw. Vollstndiges Wiederholen (REDO) aller nderungen (erfolgreich
abgeschlossener Transaktionen) auf einer Archivkopie
T1
T3
Gertefehler Recovery
Redo T1
RedoT3
temporre Log-Datei
permanente Datenbank
Archivkopie der DB
-
Logging und Recovery
13
Katastrophen-Recovery (R4)
Recovery nach Katastrophe Nutzung einer aktuellen DB-Kopie in einem entfernten System oder stark verzgerte Fortsetzung der DB-Verarbeitung mit repariertem/neuem System
auf der Basis gesicherter Archivkopien (Datenverlust)
-
Logging und Recovery
14
bersicht
Einfhrung Fehlermodell Recovery-Arten
Logging-Strategien physisches/logisches und Zustands-/bergangs-Logging Eintrags- vs. Seiten-Logging Aufbau der Log-Datei
Klassifikation von Recovery-Verfahren Einbringstrategie Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie) Commit-Behandlung, Gruppen-Commit Sicherungspunkte (Checkpoints)
Crash-Recovery Allgemeine Restart-Prozedur Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery Erstellung von Archivkopien
-
Logging und Recovery
15
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 Log-Satz
DB-Zustandneu CLR
DB-Zustandalt Log-Satz DB-Zustandneu
DB-Zustandneu Log-Satz DB-Zustandalt
DO REDO UNDO
CLR: Compensation Log Record (fr Crash whrend Recovery)
-
Logging und Recovery
16
Logging-Verfahren
Logging kann auf jeder DBMS-Systemebene erfolgen
Sammeln von ebenenspezifischer Log-Information setzt voraus, dass bei der Recovery die Konsistenzbedingungen der darunter liegenden Abbildungsschicht im DB-Zustand erfllt sind
Klassifikation der Logging-Verfahren Logging
logisch
bergangs- Logging
physisch (byte-orientiert)
kombiniert (physiological)
Zustands- Logging
bergangs- Logging
Seiten- Logging
Eintrags- Logging . . .
-
Logging und Recovery
17
Logisches Logging
Protokollierung der ndernden DML-Befehle mit ihren Parametern Vorteil:
minimaler Log-Umfang Generelles UNDO-Problem:
mengenorientierte Aktualisierungsoperation, z. B. DELETE Voraussetzung
nach einem Systemausfall mssen auf der permanenten Datenbank DML-Operationen ausfhrbar sein, d.h., sie muss wenigstens operationskonsistent sein (Aktionskonsistenz)
verzgerte (indirekte) Einbringstrategie erforderlich, d.h. fr Update-in-Place nicht anwendbar
-
Logging und Recovery
18
Physisches Logging
Protokollierung der Objekte vor und nach einer nderung Zustands-Logging
alte Zustnde (Before-Images) und neue Zustnde (After-Images) genderter Objekte werden in die Log-Datei geschrieben
Seiten-Logging: Log-Granulat eine Seite Eintrags-Logging: Log-Granulat ein Eintrag/Satz
bergangs-Logging Protokollierung der Differenz zwischen Before- und After-Image
Eigenschaften: physisches Logging ist bei direkten und verzgerten Einbringstrategien
anwendbar aufwendig und unntig starr v.a. bezglich Lsch- und Einfgeoperationen
Seitenkopf
einfgen genderte Eintrge
-
Logging und Recovery
19
Aufwand bei physischem Zustandslogging
einfachste Form der Implementierung: Seiten-Logging
Freispeicherverwaltung FPAZuordnungs-
1 2 3 i nfi
123
j
m
Adr(X1)
tabelle ZT
Datenseite Pi
X1
Aufwand Datenseite ZT FPA n Zugriffspfadseiten
normaler Betrieb (DO) 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
Operation: STORE X-RECORD (X1)
-
Logging und Recovery
20
nderungen bezglich einer Seite A 1. ein Objekt a wird in Seite A eingefgt (A1 A2) 2. in A wird ein bestehendes Objekt balt nach bneu gendert (A2 A3)
Rekonstruktion von Seiten beim bergangs-Logging A1 als Anfangs- oder A3 als Endzustand seien verfgbar REDO-Recovery UNDO-Recovery
A1 (A1 A2) = A2 A3 (A2 A3) = A2 A2 (A2 A3) = A3 A2 (A1 A2) = A1
logisches Logging physisches Logging
Zustnde Seiten-Logging: Protokollierung der Before- und After-Images
1. A1 und A2 2. A2 und A3
bergnge Protokollierung der Operationen mit Parameter
1. Insert (a) 2. Update (balt, bneu)
bergangs-Logging 1. A1 A2 2. A2 A3
Logging: Anwendungsbeispiel
-
Logging und Recovery
21
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
-
Logging und Recovery
22
Bewertung der Logging-Verfahren
Eintrags-Logging vs. Seiten-Logging Vorteile von Eintrags-Logging
geringerer Platzbedarf weniger Log-E/As erlaubt bessere Pufferung von Log-
Daten (Gruppen-Commit) untersttzt feine Synchronisations-
granulate (Seiten-Logging Synchronisation auf Seitenebene)
Nachteil von Eintrags-Logging Recovery ist komplexer als mit
Seiten-Logging z.B. mssen Seiten vor der
Anwendung der Log-Stze wieder in den Speicher eingelesen werden
Logging-Aufwand im Normalbetrieb
Restart-Aufwand im Fehlerfall (Crash)
Seitenzustands-Logging
-- +
Seitenbergangs-Logging (Differenzen)
- +
Eintrags-Logging physiologisches Logging
+ +
Logisches Logging
++ --
-
Logging und Recovery
23
Satzarten der temporren Log-Datei
Verschiedene Satzarten erforderlich BOT-, Commit-, Abort-Satz nderungssatz
- UNDO-Informationen, z.B. Before-Images - REDO-Informationen, z.B. After-Images
Sicherungspunkt-Stze
-
Logging und Recovery
24
Satzarten der temporren Log-Datei
Struktur der Log-Eintrge fr nderungsoperationen: [LSN, TAID, PageID, Redo, Undo, PrevLSN]
LSN: Log Sequence Number eindeutige Kennung des Log-Eintrags LSNs mssen monoton aufsteigend vergeben werden chronologische Reihenfolge der Protokolleintrge kann dadurch ermittelt
werden Seitenkopf einer DB-Seite enthlt LSN der zuletzt durchgefhrten nderung
(Seiten-LSN) TAID: Transaktionskennung der TA, die die nderung durchgefhrt hat
-
Logging und Recovery
25
Satzarten der temporren Log-Datei
Struktur der Log-Eintrge fr nderungsoperationen: [LSN, TAID, PageID, Redo, Undo, PrevLSN]
PageID: Kennung der Seite, auf der die nderungsoperation vollzogen wurde wenn die nderung mehr als eine Seite betrifft, mssen entsprechend viele
Log-Eintrge generiert werden Redo:
Redo-Information gibt an, wie die nderung nachvollzogen werden kann Redo ist nur erforderlich, wenn Seiten-LSN < LSN des Log-Eintrags
Undo: Undo-Information beschreibt, wie die nderung rckgngig gemacht werden
kann Undo ist nur erforderlich, wenn Seiten-LSN LSN des Log-Eintrags
PrevLSN: ist ein Zeiger auf den vorhergehenden Log-Eintrag der jeweiligen TA diesen Eintrag bentigt man aus Effizienzgrnden
-
Logging und Recovery
26
Temporre Log-Datei
Beispiel
-
Logging und Recovery
27
Temporre Log-Datei
Log ist eine sequentielle Datei Schreiben neuer Protokolldaten an das aktuelle Dateiende
Log-Daten sind fr Crash-Recovery nur begrenzte Zeit relevant Undo-Stze fr erfolgreich beendete TA werden nicht
mehr bentigt nach Einbringen der Seite in die DB wird Redo-Information
nicht mehr bentigt Redo-Information fr Medien-Recovery ist im Archiv-Log zu sammeln!
-
Logging und Recovery
28
Temporre Log-Datei
Ringpuffer-Organisation der Log-Datei
lteste Redo-Information lteste Redo-Information, die nicht im Archiv-Log vorliegt
aktuelles logisches
1 2 3 ... A E ... n
Log-Ende
logischerLog-Anfang
einer genderten Seiteim DB-Puffer
Beginn der ltesten TA(MinLSN)
-
Logging und Recovery
29
Beispiel DB2
primre Log-Dateien werden beim Start der Datenbank allokiert
sekundre Log-Dateien werden bei Bedarf allokiert
Zwei Log-Modi: Circular Logging: Log-Dateien sind als
Ringpuffer organisiert. Es sind nur vollstndige Backups mglich (offline).
Archive Logging: Log-Dateien werden archiviert. Ausgehend von einem Datenbank-Backup ist Recovery bis zum Ende des Logs oder bis zu einem bestimmten Zeitpunkt mglich.
Gespiegelte Log-Dateien mglich
Parameter Bereich Beschreibung
logbufsz DB Gre des Log-Puffers
logprimary DB Anzahl primrer Log-Dateien
logsecond DB maximale Anzahl sekundrer Log-Dateien
logfilsiz DB Gre der einzelnen Log-Dateien
logpath DB Pfad zu den Log-Dateien
mirrorlogpath DB Pfad fr gespiegelte Log-Dateien
logretain DB Legt fest, ob Log-Dateien archiviert werden oder nicht
-
Logging und Recovery
30
bersicht
Einfhrung Fehlermodell Recovery-Arten
Logging-Strategien physisches/logisches und Zustands-/bergangs-Logging Eintrags- vs. Seiten-Logging Aufbau der Log-Datei
Klassifikation von Recovery-Verfahren Einbringstrategie Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie) Commit-Behandlung, Gruppen-Commit Sicherungspunkte (Checkpoints)
Crash-Recovery Allgemeine Restart-Prozedur Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery Erstellung von Archivkopien
-
Logging und Recovery
31
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)
Wahl des Sperrgranulats
Commit-Behandlung
Seitenzuordnungs- strukturen
Puffer- verwaltung
Synchronisation
-
Logging und Recovery
32
WAL-Prinzip und Commit-Regel
WAL-Prinzip (Write Ahead Log) Vor dem Schreiben einer schmutigen nderung in die materialisierte
Datenbank muss die zugehrige Undo-Information (z.B. Before-Images) in die Log-Datei geschrieben werden.
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.
Ausschreibezeitpunkte des Log-Puffers:
wenn er vollstndig gefllt ist aufgrund des WAL-Prinzips aufgrund der Commit-Regel
-
Logging und Recovery
33
Einbringstrategie
non-atomic / direkt / update-in-place genderte Seite wird immer in denselben Block auf Platte zurckgeschrieben Schreiben ist gleichzeitig Einbringen in die permanente DB atomares Einbringen mehrerer genderter Seiten ist nicht mglich
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
Undo- Info
Redo- Info
DB-Puffer Log-Puffer
temp. Log-Datei
U(C) R A B C'
U(C) R(C') A B'
U(B) R(B')
C'
DB-Seiten
DB
-
Logging und Recovery
34
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
-
Logging und Recovery
35
Einbringstrategie
atomic / verzgert
Undo- Info
Redo- Info
DB-Puffer Log-Puffer
temp. Log-Datei
U R
A B C C'
U(C) R(C') A B'
U(B) R(B')
C'
DB-Seiten
DB
a b c'
a b c
laufende
alte 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
-
Logging und Recovery
36
Ersetzungsstrategie
Problem: Ersetzung schmutziger Seiten steal
genderte Seiten knnen jederzeit, insbesondere vor EOT der ndernden TA, ersetzt und in die permanente DB eingebracht werden
groe Flexibilitt zur Seitenersetzung Undo-Recovery vorzusehen (TA-Abbruch, Systemfehler) steal erfordert Einhaltung des WAL-Prinzips
nosteal
Seiten mit schmutzigen nderungen drfen nicht ersetzt werden Probleme bei langen nderungs-TA es ist keine Undo-Recovery auf der permanenten DB vorzusehen
-
Logging und Recovery
37
Ausschreibstrategie
Problem: Ersetzung schmutziger Seiten force
alle genderten Seiten werden sptestens bei EOT (Commit) in die permanente DB eingebracht (Durchschreiben)
hoher Schreibaufwand Antwortzeitverlngerung fr nderungs-TA groe DB-Puffer werden schlecht genutzt keine Redo-Recovery nach Rechnerausfall
noforce
kein Durchschreiben der nderungen bei EOT beim Commit werden lediglich Redo-Informationen in die Log-Datei
geschrieben (Commit-Regel) Redo-Recovery nach Rechnerausfall
-
Logging und Recovery
38
Ersetzungsstrategie/Ausschreibstrategie
steal nosteal
force Undo-Recovery keine Redo-Recovery
fr non-atomic nicht mglich non-atomic, nosteal force non-atomic, force steal
noforce Undo-Recovery Redo-Recovery
keine Undo-Recovery Redo-Recovery
-
Logging und Recovery
39
Sperrverwaltung
Abhngigkeit: Log-Granulat muss kleiner oder gleich Sperrgranulat sein Beispiel:
Sperren auf Satzebene Logging auf Seitenebene (Before- und After-Images) Undo (Redo) einer nderung kann parallel durchgefhrte nderungen
derselben Seite berschreiben (lost update)
r1
r2
r1
r2
T1 T2
r1 -> r1 r2 -> r2
o
commit
T2
DB
r1
r2
Undo r1' und r2'!?
-
Logging und Recovery
40
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)
w(x) T1
Unlock(x)
Beginn der Commit-Behandlung
r(x) T2
EOT
-
Logging und Recovery
41
Commit-Behandlung
zweiphasige Commit-Bearbeitung: Phase 1: Wiederholbarkeit der TA sichern
ggf. noch nderungen sichern 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
Schreiben der Log-Daten (inkl. Commit-Satz) auf Platte
Sperr- freigabe
-
Logging und Recovery
42
Gruppen-Commit
Log-Datei ist pot. Leistungsengpass pro nderungstransaktion wenigstens
1 Log-E/A max. ca. 250 sequentielle
Schreibvorgnge pro Sekunde (1 Platte)
Gruppen-Commit bedeutet gemeinsames Schreiben der Log-Daten mehrerer TA Pufferung der Log-Daten in Log-
Puffer (1 oder mehrere Seiten) Voraussetzung: Eintrags-Logging Ausschreiben des Log-Puffers erfolgt,
wenn er voll ist bzw. Timer abluft nur geringe Commit-Verzgerung
Gruppen-Commit erlaubt Reduktion auf 0.1 - 0.2 Log-E/As pro TA
Einsparung an CPU-Overhead fr E/A reduziert CPU-Wartezeiten
dynamische Festsetzung des Timer-Wertes durch DBMS wnschenswert
Gruppen-Commit ermglicht demnach Durchsatzverbesserung v.a. bei Log-Engpass oder hoher CPU-Auslastung
Log-Daten/ Commit-Satz in Log-Puffer
Gruppen-Commit
Sperr- freigabe
Schreiben der Log-Daten (inkl. Commit-Satz) auf Platte
-
Logging und Recovery
43
Pr-Commit
Sperren bereits freigeben, wenn Commit-Satz im Log-Puffer steht (vor Schreiben auf Log-Platte)
TA kann nur noch durch Systemfehler scheitern In diesem Fall scheitern auch alle abhngigen TA, die ungesicherte nderungen
aufgrund der vorzeitigen Sperrfreigabe gesehen haben In allen drei Verfahren wird der Benutzer erst nach Schreiben des Commit-Satzes
auf Platte vom TA-Ende informiert
Log-Daten/ Commit-Satz in Log-Puffer
Pr-Commit
Sperr- freigabe
Schreiben der Log-Daten (inkl. Commit-Satz) auf Platte
-
Logging und Recovery
44
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 x x
x
x
x S1
S3
S2
Seiten, die beim Systemausfall im Puffer standen
x x
x
x x x x x x Sp
Systemausfall Start des
DBMS
t
-
Logging und Recovery
45
Sicherungspunkte / Checkpoints
Verwaltungsinformation Log-Datei
- BEGIN_CHKPT-Satz - Sicherungspunkt-Informationen, z.B. Liste der aktiven TA - END_CHKPT-Satz
Log-Adresse des letzten Sicherungspunkt-Satzes wird in spezieller Restart-Datei gefhrt
Sicherungspunkte und Einbringverfahren atomic
- Zustand der permanenten DB beim Crash entspricht dem zum Zeitpunkt des letzten erfolgreichen Sicherungspunktes
non-atomic - Zustand der permanenten DB enthlt alle ausgeschriebenen (eingebrachten)
nderungen bis zum Crash
-
Logging und Recovery
46
Arten von Sicherungspunkten
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 Sicherungspunkt-Aufwand
Redo-Informationen vor letztem Sicherungspunkt sind i. A. noch zu bercksichtigen
Sonderbehandlung von Hot-Spot-Seiten
-
Logging und Recovery
47
Transaktionsorientierte Sicherungspunkte
TOC = transaction-oriented checkpoint Force kann als spezieller
Sicherungspunkt-Typ aufgefasst werden: force toc
Seiten genau einer TA werden ausgeschrieben
Eigenschaften EOT-Behandlung erzwingt das
Ausschreiben aller genderten Seiten der TA aus dem DB-Puffer
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
Systemfehler
T1
T2
T3
c (T1) c (T2) Sicherungspunkte
t
-
Logging und Recovery
48
Transaktionskonsistente Sicherungspunkte
TCC = transaction-consistent checkpoint (logisch konsistent)
Sicherungspunkt bezieht sich immer auf alle TA
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
Systemfehler
T1
T2
T3
Sicherungspunkt anmelden
T4
Totzeit des DBS fr neue Transaktionen
ci
ci
ci-1
Sicherungspunkt erzeugen
t
-
Logging und Recovery
49
Aktionskonsistente Sicherungspunkte
ACC = action-consistent checkpoint (speicherkonsistent)
Sicherungspunkt bezieht sich immer auf alle TA
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)
Abhngigkeit: ACC steal
T2
Systemfehler Totzeit des DBS fr Operationen
ci ci-1
Sicherungspunkt anmelden ci
Sicherungspunkt erzeugen
T4
T3
T1
t
-
Logging und Recovery
50
Unscharfe Sicherungspunkte (Fuzzy Checkpoints)
Ziel: Synchrones Ausschreiben genderter
Seiten vermeiden
Problem Bestimmung der Log-Position, an der
Redo-Recovery beginnen muss
StartLSN und MinDirtyPageLSN Pufferverwalter merkt sich zu jeder
genderten Seite die StartLSN, d.h. Log-Satz-Adresse der ersten nderung seit Einlesen von Platte bzw. seit dem letzten Ausschreiben der nderungen
MinDirtyPageLSN = MIN(StartLSN) REDO-Recovery nach Crash beginnt bei MinDirtyPageLSN
x x x
x
x
x
S 1
S 3
S 2
Log
10 20 30 40 50 60 70 (LSN)
write
write
Seiten, die beim Systemausfall im Puffer standen
Sicherungspunkt
-
Logging und Recovery
51
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
-
Logging und Recovery
52
Kombination von DB-Recovery-Verfahren non-atomic, nosteal noforce | force TOC | non-atomic,force steal | ACC steal | atomic FuzzyCP
DB-Recovery-Verfahren
non-atomic atomic
nosteal steal nosteal steal
force noforce noforce force noforce force noforce
TOC TCC ACC Fuzzy TCC Fuzzy TOC TCC ACC TOC TCC
IMS Adabas UDS
DB2 Tandem ARIES
TOSP TWIST AIM
System R SQL/DS ? ?
Einbring- Strategie
Seiten- ersetzung
EOT- Behandlung
Sicherungs- punkt
System- beispiele
DM
S 11
00
IMS
FP
DB
Cac
he
-
Logging und Recovery
53
Beispiel DB2
Gruppen-Commit fasst mincommit TA zusammen maximale Verzgerung: 1 Sek.
Soft Checkpoints Unscharfe Sicherungspunkte Vorgabe hinsichtlich der Anzahl der
fr die Recovery relevanten Log-Dateien steuert die Hufigkeit
Overhead fr Logging reduzieren: Logging fr einzelne Tabellen unterbinden
Logging wird fr in einer Session deklarierte temporre Tabellen nicht durchgefhrt
Parameter Bereich Beschreibung
mincommit DB Anzahl der TA, die in einem Gruppen-Commit zusammen-gefasst werden
softmax DB Steuert die Hufigkeit der Checkpoints
CREATE TABLE NOT LOGGED INITIALLY
DECLARE GLOBAL TEMPORARY TABLE
-
Logging und Recovery
54
bersicht
Einfhrung Fehlermodell Recovery-Arten
Logging-Strategien physisches/logisches und Zustands-/bergangs-Logging Eintrags- vs. Seiten-Logging Aufbau der Log-Datei
Klassifikation von Recovery-Verfahren Einbringstrategie Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie) Commit-Behandlung, Gruppen-Commit Sicherungspunkte (Checkpoints)
Crash-Recovery Allgemeine Restart-Prozedur Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery Erstellung von Archivkopien
-
Logging und Recovery
56
Crash-Recovery
Ziel Herstellung des jngsten
transaktionskonsistenten DB-Zustandes aus permanenter DB und temporrer Log-Datei
bei non-atomic (update-in-place) Zustand der permanenten DB nach
Crash unvorhersehbar (chaotisch) kein logisches Logging anwendbar ein Block der permanenten DB ist
entweder - aktuell - oder veraltet (noforce) Redo - oder schmutzig (steal) Undo
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
-
Logging und Recovery
57
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 BOT-Satz 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
-
Logging und Recovery
58
Allgemeine Restart-Prozedur
Log Sicherungspunkt
a) transaktionskonsistent Analyse
Redo
Undo
b) aktionskonsistent
c) unscharf (fuzzy)
Analyse
Redo
Undo MinLSN
Analyse
Redo MinDirtyPageLSN
MinLSN Undo
-
Logging und Recovery
59
bersicht
Einfhrung Fehlermodell Recovery-Arten
Logging-Strategien physisches/logisches und Zustands-/bergangs-Logging Eintrags- vs. Seiten-Logging Aufbau der Log-Datei
Klassifikation von Recovery-Verfahren Einbringstrategie Zusammenspiel mit der DB-Pufferverwaltung (Seitenersetzung, Ausschreibstrategie) Commit-Behandlung, Gruppen-Commit Sicherungspunkte (Checkpoints)
Crash-Recovery Allgemeine Restart-Prozedur Crash-Recovery mit dem Schattenspeicherkonzept
Gertefehler-Recovery Erstellung von Archivkopien
-
Logging und Recovery
60
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
Ableitung von Archivdaten Sammlung sehr groer Datenvolumina als nachgelagerter Prozess Archiv-Log kann offline aus temporrer Log-Datei abgeleitet werden Erstellung von Archivkopien und Archiv-Log erfolgt segmentorientiert
Archiv-kopie
Archiv-Log
TemporrerLog
DB
-
Logging und Recovery
61
Erstellung der Archivkopie
Anhalten des nderungsbetriebs zur Erstellung einer DB-Kopie i. A. nicht tolerierbar
Alternativen: Inkrementelles Dumping (a)
- Ableiten neuer Generationen aus Urkopie
- nur nderungen seit der letzten Archiv-Kopie protokollieren
- Offline-Erstellung einer aktuelleren Kopie
Online-Erstellung einer Archivkopie (b) - parallel zum nderungsbetrieb
Unterschiedliche Konsistenzgrade: fuzzy dump (b1)
- Kopieren der DB im laufenden Betrieb, kurze Lesesperren
- bei Plattenfehler Archiv-Log ab Beginn der Dump-Erstellung anzuwenden
aktionskonsistente Archivkopie (b2) - Voraussetzung bei logischem
Operations-Logging
transaktionskonsistente Archivkopie (b3)
- Voraussetzung bei logischem Transaktions-Logging
- Black-/White-Verfahren - Copy-on-Update-Verfahren
-
Logging und Recovery
62
Black-/White-Verfahren
Ziel Erzeugung transaktionskonsistenter
Archiv-Kopien
spezieller Dumpprozess zur Erstellung der Archiv-Kopie
Kennzeichnung der Seiten Paint-Bit (pro Seite)
- wei: Seite wurde noch nicht berprft
- schwarz: Seite wurde bereits verarbeitet
Modified-Bit (pro Seite) - zeigt an, ob eine nderung seit
Erstellung der letzten Archiv-Kopie erfolgte
Kennzeichnung der Seiten (Forts.) Dumpprozess frbt alle weien Seiten
schwarz und schreibt genderte Seiten in Archiv-Kopie:
WHILE there are white pages DO; lock any white page; IF page is modified THEN DO; write page to archive copy; clear modified bit; END; change page color; release page lock; END;
Rcksetzregel Transaktionen, die sowohl weie als
auch schwarze Objekte gendert haben (graue Transaktionen), werden zurckgesetzt
Farbtest am Transaktionsende
Quelle: [Pu86]
-
Logging und Recovery
63
Black-/White-Verfahren
Beispiel
Dump- Prozess
T1
T2
T3
P1
P5
P2
P1
w rite
weie Transaktion
schwarze
graue
Transaktion
Transaktion
(in Archiv-Kopie)
P2 P3 P4 P5 P6 P7
P7
P1
P5
-
Logging und Recovery
64
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
Alternative: Copy-on-Update ("save some") - whrend der Erstellung einer Archiv-Kopie wird bei nderung eines weien
Objektes Kopie mit Before-Image der Seite angelegt - Dump-Prozess greift auf Before-Images zu - Archiv-Kopie entspricht DB-Schnappschuss bei Dump-Beginn - wird in einigen DBS eingesetzt (DEC RDB)
-
Logging und Recovery
65
Zusammenfassung
Fehlerarten: Transaktions-, System- und Gertefehler breites Spektrum von Logging- und Recovery-Verfahren Update-in-Place-Verfahren
sind ATOMIC-Strategien vorzuziehen erfordern physisches Logging
Eintrags-Logging ist Seiten-Logging berlegen geringerer Platzbedarf, weniger E/As, Gruppen-Commit
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 verlangen die Einhaltung des WAL-Prinzips erfordern Undo-Aktionen nach einem Rechnerausfall
Synchronisationsgranulat muss grer oder gleich dem Log-Granulat sein Erstellung von Archiv-Kopien:
"Fuzzy Dump" oder "Copy on Update" am geeignetsten
-
Logging und Recovery
66
Literatur zu diesem Kapitel
[Pu86] C. Pu: On-the-Fly, Incremental, Consistent Reading of Entire Databases, In: Algorithmica, 1986.
Datenbanken und InformationssystemebersichtAnforderungenFehlerartenVoraussetzungenForward-Recovery vs. Backward RecoveryForward-Recovery vs. Backward RecoverySystemkomponentenZielzustand nach RecoveryTransaktions-Recovery (R1)Crash-Recovery (R2)Medien-Recovery (R3)Katastrophen-Recovery (R4)bersichtLoggingLogging-VerfahrenLogisches LoggingPhysisches LoggingAufwand bei physischem ZustandsloggingLogging: AnwendungsbeispielPhysiologisches LoggingBewertung der Logging-VerfahrenSatzarten der temporren Log-DateiSatzarten der temporren Log-DateiSatzarten der temporren Log-DateiTemporre Log-DateiTemporre Log-DateiTemporre Log-DateiBeispiel DB2bersichtWichtige AbhngigkeitenWAL-Prinzip und Commit-RegelEinbringstrategieEinbringstrategieEinbringstrategieErsetzungsstrategieAusschreibstrategieErsetzungsstrategie/AusschreibstrategieSperrverwaltungCommit-BehandlungCommit-BehandlungGruppen-CommitPr-CommitSicherungspunkte / CheckpointsSicherungspunkte / CheckpointsArten von SicherungspunktenTransaktionsorientierte SicherungspunkteTransaktionskonsistente SicherungspunkteAktionskonsistente SicherungspunkteUnscharfe Sicherungspunkte (Fuzzy Checkpoints)Unscharfe SicherungspunkteKombination von DB-Recovery-VerfahrenBeispiel DB2bersichtCrash-RecoveryAllgemeine Restart-ProzedurAllgemeine Restart-ProzedurbersichtPlatten-RecoveryErstellung der ArchivkopieBlack-/White-VerfahrenBlack-/White-VerfahrenBlack-/White-VerfahrenZusammenfassungLiteratur zu diesem Kapitel