Seite 1 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 Kapitel 9 – Paralleler Zugriff auf DB FEHLERFÄLLE BEI UNKONTROLLIERTER ARBEIT Verloren gegangene Änderung - Da beide Anwendungen abwechselnd lesen und ändern, wird die Änderung der ersten Anwendung von der zweiten Anwendung nicht wahrgenommen und überschrieben Inkonsistente Sicht/nicht wiederholbares Lesen - Zwei Anwendungen lesen gleichzeitig denselben Wert und eine der beiden Anwendungen ändert ihn danach. Die andere Anwendung hat folglich einen falschen Wert im Hauptspeicher. Inkonsistente DB - Da manche Operationen nicht kommutativ sind, können durch unterschiedliche Reihenfolgen (aber gleichen Operationen) 2 Werte, die vorher gleich werden, ungleich werden. Phantomproblem - Werden zwischen 2 Anfragen Elemente in die Datenbank eingefügt, kann das Ergebnis der 2. Anfrage Elemente anzeigen, die es bei der 1. Anfrage noch nicht gab (auch wenn 2. Anfrage möglicherweise sogar die Restriktivere ist) - Definition Transaktion: Eine Menge semantisch zusammengehörender Operationen einer Anwendung. Diese Menge belässt die DB in einem konsistenten Zustand. Dabei muss eine Transaktion nicht zwangsläufig Werte ändern TRANSAKTIONEN IN SQL - BEGIN_OF_TRANSACTION (BOT) - END_OF_TRANSACTION/COMMIT (EOT) ACID-KRITERIUM - In einer DB muss jede Transaktion diesem Kriterium genügen Atomicity (Unteilbarkeit) - Transaktionen müssen entweder ganz oder gar nicht durchgeführt werden Alles-oder-Nichts Prinzip - Im Fall von Fehlern müssen die bisher Durchgeführten Änderungen der Transaktion komplett rückgängig gemacht werden Consistency (Konsistenz) - Bis zum Transaktionsende müssen alle durch die Transaktion herbeigerufenen inkonsistenten Zustände auch wieder beseitigt werden „Weiches Kriterium“: Viele Inkonsistenzen kann die DB nicht entdecken (z.B. Tippfehler) Isolation - Eine Transaktion muss so ablaufen, als wäre sie die einzige im System. - Parallele Transaktionen dürfen sich nicht beeinflussen Parallelität ist nur dann erlaubt, wenn sie die DB in denselben Zustand versetzt, in dem sie auch ohne Parallelität sein würde Durability (Dauerhaftigkeit) - Änderungen von abgeschlossenen Transaktionen müssen alle späteren Fehler überleben. - Definition Serialisierbarkeit: Liegt vor, wenn es möglich ist, zu den parallel ausgeführten Operationen vieler Transaktionen mindestens eine Möglichkeit zu finden, alle Transaktionen nacheinander auszuführen, wobei immer noch derselbe DB-Endzustand erzeugt und dieselben Ausgabedaten produziert werden Die durch die einzelnen Transaktionen vorgegebene Reihenfolge der Operationen muss aber stets erhalten bleiben - Eine Menge von Transaktionen ist für das DB dann korrekt synchronisiert, wenn sie serialisierbar sind - Definition Schedule bzw. Historie: Eine beliebige Anordnung der Teiloperationen einer Menge von gegebenen Transaktionen. Die durch die einzelnen Transaktionen vorgegebenen Reihenfolgen der Teiloperationen muss aber gewahrt werden Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 2 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 Idee: Lässt man Parallelität zu, können beliebige Schedule mit der gleichen Wahrscheinlichkeit entstehen - Definition Serielle Schedule: Hierbei werden zuerst alle Teiloperationen einer Transaktion ausgeführt, dann der nächsten etc. - Definition Serialisierbarer Schedule: Erzeugen denselben DB-Zustand und dieselben Ausgaben wie irgendein serieller Schedule Praxisfern, da meist in Echtzeit neue Transaktionen hinzukommen und andere erfolgreich abgearbeitet werden - Definition Scheduler: Diese Komponente bildet ankommende serielle Teiloperationen (Ausgangsschedule) auf serialisierbare Schedule (Ergebnisschedule) ab Hierbei muss in Echtzeit entschieden werden, ob die Teiloperation ausgeführt werden darf, verzögert wird oder zurückgewiesen wird (und dessen Transaktion rückgängig gemacht wird) Muss mit einem n(p)-vollständigen Problem umgehen können, ermöglicht also nicht immer optimale Lösungen FOLGENDE KRITERIEN BESTIMMEN DIE QUALITÄT DES SCHEDULERS Durchlässigkeit - Inwieweit ist der Scheduler in der Lage, alle serielle & serialisierbaren Schedules tatsächlich „live“ durchzulassen → Je weniger Eingriffe, desto höher die Parallelität Steuerungsvermögen - Inwieweit ist der Scheduler in der Lage, nicht serialisierbare Ausgangsschedules sofort in serialisierbare Schedules umzuwandeln, ohne sie erst später zurücksetzen zu müssen Steht im Konflikt mit der Durchlässigkeit (lässt sich an) Aufwand - Wie viel direkten und indirekten Aufwand (z.B. Transaktionszurücksetzung) entsteht durch die Arbeit des Schedulers Definition: Konflikt - Wenn zwei Teiloperationen unterschiedlicher Transaktionen auf dasselbe Objekt zugreifen, wobei mind. eine davon dies schreibend tut Definition: Abhängigkeit - Die Reihenfolge zweier im Konflikt stehender Operationen definiert eine Abhängigkeit zwischen diesen beteiligten Transaktionen Eine Schedule ist nicht serialisierbar, falls zwei Operationen eine wechselseitige Abhängigkeit haben. Definition: Abhängigkeitsgraph - Jede im Schedule vorkommende Transaktion wird als Knoten dargestellt - Jede Abhängigkeit zwischen den Transaktionen wird als gerichtete Kante dargestellt, wobei die Kante bei der Transaktion anfängt, die zuerst im Schedule steht und auf die Transaktion zeigt, die als zweites im Schedule steht Definition Serialisierbarkeitskriterium: Hat der Abhängigkeitsgraph keinen Zyklus, ist die Schedule serialisierbar Kein hinreichendes Kriterium, da es wirkungslose Transaktionen außeracht lässt (Enthalten Teiloperationen, die einen Wert schreiben, ohne ihn vorher gelesen zu haben → Kann man folgenlos weglassen, da ihr Wert später „blind“ überschieben wird) In diesem Fall kann eine Schedule serialisierbar sein, auch wenn das Kriterium nicht erfüllt ist KLASSIFIKATION VON SYNCHRONISATIONSVERFAHREN Optimistische Vorgehensweise Pessimistische/Präventive Vorgehensweise - Greifen ein, wenn Serialisierbarkeit schon - Greift zusätzlich auch dann, wenn Konsistenzverletzt wurde →Durch Zurücksetzen verletzung auftreten könnte Feststellung durch Graph - Bekannte Vertreter und in DBMS - Synchronisieren Transaktionen nur durch ihr vorherrschend: Sperrverfahren zurücksetzen Gut, wenn es viele Konflikte gibt Gut, wenn es kaum Konflikte gibt Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 3 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 - Die optimistischen Verfahren haben ein sehr schlechtes Steuerungsvermögen, hat aber einen akzeptablen Aufwand SPERRVERFAHREN - Idee: Alle, von einer Transaktion benötigten, Objekte werden gesperrt. Somit werden Konflikte vorgebeugt, da alle anderen Transaktionen, die diese Objekte auch nutzen wollen, in einen Wartezustand versetzt werden. - Im Hauptspeicher gibt es eine Sperrtabelle folgenden Aufbaus → Objekt; Sperre (kann ziemlich groß, setzen und Prüfen bedeutet Aufwand!) Der Scheduler muss stets klären - ob das gesperrte Objekt der aktuellen Transaktion gehört - Was für Sperrarten es gibt und was für Einheiten sperrbar sind → Sperrmodi - Wann und für wie lange Sperren vergeben werden → Sperrprotokoll - Was mit bereits gesperrten Objekten passiert → Kollisionsstrategie Sperrmodi - Dabei stehen die Schreiboperationen im Mittelpunkt, da sie die Konflikte verursachen, während Leseoperationen miteinander kompatibel sind - Definition Lesesperre/Shared Lock: Erlaubt anderen Transaktionen das Setzen von Sperren, Schreibsperren sind hingegen verboten - Definition Schreibsperre/exclusive Lock: Der „Setzer“ darf schreiben & lesen, die anderen nichts Ein Objekt darf mehrere Lesesperren haben, andere Kombinationen sind verboten Die Effizienz der Sperrverfahren hängt auch vom Sperrgranulat (je feiner, desto höher die mögliche Parallelität)ab (Allerdings bedeutet das Setzen einer Sperre Aufwand) Das Sperren von Objekten funktioniert meist physikalisch nicht, da die Festplatte als kleinste Einheit den Sektor hat, der oft mehrere Objekte speichert und stets komplett gelesen werden muss → Sektor ist intern das kleinste Sperrgranulat - Definition Sperrhierarchie: Eine Hierarchie der sperrbaren DB-Einheiten DB → Segment → Tabelle → Zeile/Objekte (Das Sperren einer Obereinheit sperrt auch die Untereinheiten) Durch die Wahl der Hierarchiestufe bestimmt man über den Sperraufwand und die mögliche Parallelität Beim Setzer einer Sperre muss überprüft werden, ob nicht bereits ein Objekt höherer oder auch tieferer Stufe gesperrt ist (Sie Untersuchung fängt oben an) - Definition Warnsperre/intention lock: Werden auf dem Sperrgranulat höherer Ebene gesetzt, um die Absicht auszugrücken, ein Objekt weiter unten zu sperren (ermöglichen zu erkennen, ob auf einer tieferen Ebene ein Sperrgranulat bereits inkompatibel gesperrt wurde) Sperrmodi Warnsperren - IS: Absicht, weiter unten ein Sperrgranulat lesend zu sperren - IX: Absicht, weiter unten ein Sperrgranulat schreibend zu sperren - SIX: Absicht, weiter unten ein Objekt erst lesend und danach schreibend zu sperren (weil nach dem Lesen mit einer hohen Wahrscheinlichkeit geschrieben wird) - Definition Zweiphasen-Sperrprotokoll: Eine Transaktion muss wohlgeformt (muss jeder zu bearbeitende Objekt erst sperren) und zweiphasig (darf nach der Sperrenfreigabe dieses Objekt nicht mehr erneut sperren) sein Zuerst wird alles gesperrt und dann nach und nach wieder freigegeben Ansonsten sind trotz Sperren Inkonsistenzen möglich Um die Parallelität zu fördern, wird dabei zu Beginn die am wenigsten restriktive Sperre angefordert uns später, bei Bedarf, verschärft (beides aber nur in Phase 1) Haben eine Wachstumsphase (Sperren werden angefordert) und Schrumpfungsphase (Sperren werden freigegeben und dürfen nicht erneut angefordert werden) Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 4 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 - Definition Fortgepflanztes Rollback: Der Abbruch einer Transaktion führt zum Zurücksetzen anderer, möglicherweise bereits abgeschlossener, Transaktionen Kann nur dann auftreten, falls die vorherige Transaktion ihre geänderten Objekte bereits vor ihrem Abschluss z.T. freigibt Steht um Widerspruch mit den ACID-Kriterien - Definition Striktes Zweiphasen-Sperrprotokoll: Die Freigabe aller gesperrten Objekte erfolgt als atomare Operation → Vermeidet fortgepflanztes Rollback. → Default bei DB Löst alle o.g. Probleme außer das Phantomproblem Schränkt die Parallelität ein - Definition Deadlock: Transaktionen warten wechselseitig darauf, dass der jeweils andere Prozess ihnen ein bestimmtes Objekt freigibt Kriterien, die einen Deadlock ermöglichen - Gegenseitiger Ausschluss: Betriebsmittel stehen den Prozessen exklusiv zur Verfügung - Nichtentziehbarkeit: Kein Zwangsentzug des Betriebsmittels, sondern Freigabe durch den „Besitzer“-Prozess (sonst keine Zweiphasigkeit) - Warte-und-Halte-Fest-Bedingung: Kriegt ein Prozess ein Betriebsmittel nicht, wartet er und entsperrt die bereits erhaltenen Betriebsmittel nicht - Mehrfachanforderung: Prozesse dürfen mehrere Betriebsmittel sperren - Definition Preclaiming: Alle von einer Transaktion möglicherweise benötigten Transaktionen werden auf einmal gesperrt (Wenn das nicht klappt, wartet die Transaktion) Die Transaktion soll stets auf alle benötigten Daten zugreifen dürfen Starvationproblem muss verhindert werden: Eine wartende Transaktion darf nicht stets von anderen Transaktionen überholt werden (insb. Bei häufig angefragten Daten) Verhindert Deadlocks (Kriterium der Mehrfachanforderung wird außer Kraft gesetzt), es muss aber stets bekannt sein, welche Daten die Transaktion braucht (nicht immer der Fall → Erfordert viel weiträumigere, vorbeugende Sperren) Schränkt die Parallelität ein und wird kaum in der Praxis implementiert VERFAHREN ZUR BEHANDLUNG VON DEADLOCKS - Verhinderung → Preclaiming - Vermeidung (Betriebsmittel werden nur dann zugeteilt, wenn es mind. Eine Möglichkeit gibt, einen Deadlock zu vermeiden → Keine Anwendung, da zu komplex) → Im laufenden Betrieb - Auflösung durch Zeitbeschränkung (time-out) → Problem der Zeitspannenwahl Dem Prozess werden seine Betriebsmittel entzogen und er wird zurückgesetzt Klappt immer, Aufwand ist relativ gering, aber setzt oft die teuerste Transaktion zurück - Erkennung und Auflösung Es wird ein Wartegraph aufgebaut, der Deadlocks erkennt (erkennbar an Zyklus) Bei einem Deadlock wird eine der Transaktionen (die vorher definierte Bedingungen erfüllt) zurückgesetzt (und eine kurze Zeit blockiert) Deadlockerkennung verursacht aber einen hohen Aufwand SPERRMANAGER - Kümmert sich um die Synchronisation von Transaktionen - Setzt Sperren und gibt sie wieder frei (Prüft, ob Sperre gesetzt werden kann→ Sonst Warten) Informationen über Sperren stehen in der Sperrtabelle - Erkennung und Verhinderung von Deadlocks (in periodischen Zeitabständen) - Verhindert dauerhafte Blockaden durch „gerechte“ Sperren Der Sperrmanager wird dann aktiviert, wenn sperren gesetzt, verschärft oder entfernt werden Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 5 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 PRÄDIKATSPERREN (GEGENTEIL: PHYSIKALISCHE SPERREN DIE OBEN BEHANDELTEN) - Eignen sich zur Lösung des Phantomproblems (die vorherigen Sperren gelten nur für Objekte, die bereits in der Datenbank sind) - Definition Prädikatensperre: Sperren auf logischer Ebene, die durch ein Prädikat (=Bedingung) beschrieben werden, dass eindeutig die zu sperrende Objektmenge abgrenzt (und damit auch die Objekte, die erst später dazukommen bzw. alle potenziellen Datensätze) - Problem: 2 durch Prädikate beschriebene Objektmengen können sich überlappen (n(p)vollständiges Problem) Nicht in DBMS implementiert! - Kann annähernd über Zugriffspfade gelöst werden, indem Änderungen an Zugriffspfaden temporär sperrt Dazu muss es aber Zugriffpfade geben KONSISTENZ- BZW. ISOLATIONSSTUFEN Je nachdem, wie restriktiv die gewählte Stufe ist, vermeidet man bestimmte Probleme, aber schränkt die Parallelität ein Betreffen aber nur das Lesen: Schreibvorgänge müssen stets konsistenzbewahrend sein! - READ COMMITED: Lesesprerren werden frühzeitig wieder aufgelöst (sofort, nachdem das Objekt gelesen wurde) Garantiert aber, dass der gelesene Datensatz irgendwann eine Bedeutung hatte - READ UNCOMMITED: Kann auch Werte zurückliefern, die als Zwischenergebnis bei der Transaktionsdurchführung verstanden werden können. Hatte also evt. nie Gültigkeit Recovery - Ein Konzept, dass die DB in einen eindeutigen und konsistenten Zustand zurückversetzt - Dabei geht es darum, die Änderungen von noch nicht abgeschlossenen Transaktionen rückgängig zu machen und die Änderungen von abgeschlossenen Transaktionen unangetastet zu lassen - Definition Recoveryereignis: Ein Ereignis, dass zum (teilweisen) Abbruch aller laufenden Transaktionen führen oder Daten korrumpieren kann - Definition Transaktionsrecoveryereignis: Lässt sich einer auslösenden Transaktion zuordnen. Seine Auswirkungen betreffen nur diese Transaktion 3 FÄLLE VON TRANSAKTIONSRECOVERYEREIGNISEN Anwendungsbedingte Transaktionsrecoveryereignisse - Fehler abseits des DBMS - Können durch eine Anwendung verursacht werden: Prozeduraufruf mit falschen Parametern - Können durch den Anwender verursacht werden: Fehleingaben Systembedingte Transaktionsrecoveryereignisse - Müssen von der DBMS im z.B. im Rahmen der operationalen Integrität erkannt werden - Beispiele: Synchronisationskonflikte, Deadlocks, Zugriffsverletzungen Kaskadierende Transaktionsrecoveryereignisse - Tretten als Folge anderer Transaktionsrecoveryereignisse auf - Z.B. bei Wechselwirkungen zwischen Transaktionen Erzeugen ein fortgepflanztes Rollback: Es müssen auch andere Transaktionen zurückgesetzt werden - Definition Umgebungsrecoveryereignis: Systemressourcen fallen temporär (Rechnerabsturz) oder dauerhaft (Plattendeffekt) aus. AUSWIRKUNGEN VON UMGEBUNGSRECOVERYEREIGNISSEN Hauptspeicherrecoveryereignisse - Der Inhalt des Hauptspeichers geht zum Beispiel durch einen Systemabsturz verloren - Dadurch gehen auch Informationen über die laufenden Transaktionen und die Sperrtabelle verloren Sekundärspeicherrecoveryereignisse - Z.B. infolge eines Headcrashs geht der Festplatteninhalt verloren Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 6 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 BEDEUTUNG FÜR DAS ACID-KRITERIUM: ATOMICITY (UNTEILBARKEIT) - Solange die Transaktion nicht erfolgreich beendet wurde, muss sie rückgängig gemacht werden können BEDEUTUNG FÜR DAS ACID-KRITERIUM: DURABILITY (DAUERHAFTIGKEIT) - Jede erfolgreich beendete Transaktion muss jeden Fehlerfall überleben - Definition UNDO: Dabei wird die DB auf einen früheren, konsistenten Zustand zurückgesetzt. Dazu kann entweder ein Backup eingespielt werden, oder die durchgeführten Operationen rückgängig gemacht werden Damit werden Datensätze entfernt, die keine Gültigkeit haben - Definition REDO: Dabei wird ein verloren gegangener konsistenter DB-Zustand wiederhergestellt. Dies kann durch das Einspielen eines Backups oder durch das Wiederholen der nicht gespeicherten Transaktionen erfolgen. Um die Änderungen von eigentlich bereits erfolgreich abgeschlossenen Transaktionen in die DB einzuspielen WANN IST EIN REDO UND WANN EIN UNDO DURCHZUFÜHREN? - Dies hängt entscheidend davon ab, wie die Transaktion geendet ist Wurde bereits Teile in den Sekundärspeicher zurückgeschrieben? UNDO! Ist eine Transaktion abgeschlossen worden, aber es wurden nicht alle Änderungen zurückgeschrieben: REDO! 2 BESONDERHEITEN IN HINBLICK AUF DAS UNDO - Steal: Wenn eine Transaktion zu jedem Zeitpunkt Daten modifizieren kann, müssen spezielle Vorkehrungen für das UNDO getroffen werden - ¬Steal: Wenn eine Transaktion nur zum Schluss Daten modifizieren kann, brauchen keine Vorkehrungen für das UNDO getroffen werden 2 BESONDERHEITEN IN HINBLICK AUF DAS REDO - Force: Alle von der Transaktion modifizierten Daten müssen vor ihrem Ende in den Sekundärspeicher zurückgeschrieben werden: Keine Vorkehrungen für das REDO notwendig - ¬Force: Alle von der Transaktion modifizierten Daten können auch nach ihrem Ende in den Sekundärspeicher zurückgeschrieben werden: Spezielle Vorkehrungen für das REDO notwendig! LOGDATEI - Definition Logdatei: Eine Datei, in der jeder Transaktionsbeginn und –ende und jede Änderungsoperation der DB in richtiger Reihenfolge protokolliert werden Enthält Informationen über den letzten konsistenten DB-Zustand und überlebt Fehler REDO und UNDO stützen sich auf diese Logdatei Generell kann logisch und physikalisch protokolliert werden - Definition Logische Protokollierung: Es wird protokolliert, welche Änderungsoperation mit welchen Operanden auf welche Spalte durchgeführt wurde Für das Gelingen eines UNDO muss es eine gültige inverse Operation geben - Definition Physikalische Protokollierung: Hier werden sämtliche Werte vor der Änderung (=Before-Image) und nach der Änderung (After-Image) protokolliert Das Before-Image muss vor der Modifikation der DB erstellt werden Das After-Image muss spätestens zusammen mit dem Transaktionsende erstellt werden WAL-Prinzip: Alle Logeinträge einer Transaktion müssen vor ihrem Ende geschrieben werden (Write Ahead Log) Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 7 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 BEMERKUNGEN - Die Reihenfolge der Logdateieinträge ist wesentlich und müssen der Realität ensprechen. Es ist nicht möglich, dass zunächst nur die Einträge für die endenden Transaktionen eingetragen werden - Logateieinträge werden als Ringpuffer verwaltet: Am einen Ende kommen neue Logdateieinträge rein, am anderen Ende werden sie in den Sekundärspeicher geschrieben Damit können die Folgen der Systemabstürze mit Hauptspeicherverlust behoben werden - Logdateieinträge werden oft noch zusätzlich redundant in ein Logarchiv gespeichert Damit können die Folgen beliebig schwerer Recovryereignisse behandelt werden Enthält mehr Recoverydaten als die Logdatei ROLLBACK - DBMS setzt im laufenden Betrieb wegen eines Transaktionrecoveryereignisses bestimmte Transaktionen zurück. Deren Änderungen werden dabei rückgängig gemacht. - Dieser Prozess kann in der Regel parallel zu anderen Transaktionen ablaufen Vorgehen bei ¬Steal: Freigeben der betroffenen Hauptspeicherseiten Vorgehen bei Steal: Dabei geht man die Logdatei zurück und nutzt die Before-Images, um die veränderten Werte wiederherzustellen. SYSTEMNEUSTART - Wird nach einen Systemabsturz notwendig. Dabei geht der gesamte Hauptspeicher- und Pufferinhalt verloren (Listen aktiver Transaktionen, Sperren) - DB kann danach inkonsistent sein, da Transaktionen aktiv gewesen sein könnten Dabei wird die Logdatei rückwärts gelesen und zu jedem BOT das EOT gesucht Vorhanden: Transaktion war bereits beendet eventuell REDO Nicht vorhanden: Transaktion war nicht beendet eventuell UNDO CHECKPOINTS Helfen dabei festzustellen, bis wann rückwärts gelesen werden muss - Definition Checkpoint: Werden in regelmäßigen Abständen in die Logdatei geschrieben und geben Auskunft darüber, welche Transaktionen zum aktuellen Zeitpunkt aktiv waren. All die Transaktionen, die im letzten Checkpoint stehen bzw. danach gestartet wurden und bis zum Absturz nicht beendet wurden konnten nicht erfolgreich abgeschlossen werden - Problem mit der ¬Force-Strategie: Wurden alle abgeschlossenen Transaktionen tatsächlich beendet Mit dem Anlegen eines Checkpoints müssen alle bereits abgelaufenen Transaktionen ihre Änderungen auch geschrieben haben Es müssen nur die Transaktionen nach dem Checkpoint wiederholt werden. REDO/UNDO kann höchstens überflüssig sein, gefährdet aber nie die Konsistenz der DB Checkpoints mit Systemstillstand - Zum Erstellungszeitpunkt gibt es keine aktiven Transaktionen mehr (wenn doch, erst Transaktionen ablaufen lassen). - Sehr einfach, Rollback über einen Checkpoint hinaus ist nie notwendig Minimale Logdatei: Startet mit dem letzten Checkpoint - Nachteil: Das Warten auf unfertige Transaktionen verursacht Wartezeiten Checkpoints im laufenden Betrieb - Checkpoints werden unabhängig von aktuell ablaufenden Systemaktivitäten erstellt In der Logdatei geschriebene Aktivitäten sind atomar (=abgeschlossen) Geht man davon aus, dass alle vor dem Checkpoint bereits abgelaufenen Transaktionen auch ihre Daten geschrieben haben, ist ein REDO nur für die Transaktionen nach dem Checkpoint notwendig (bei UNDO schon) Unscharfer Checkpoint - Logdatei ist eindeutig durchnummeriert und es wird in der Logdatei festgehalten, welche Arbeitsspeicherinhalte noch nicht zurückgeschrieben wurden Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen) Seite 8 von 8 www.jurijs-skripte.de.vu DBMS - Kapitel 9 Sicherungspunkte - Befinden sich innerhalb von Transaktionen - Auf diese können Transaktionen gezielt zurückgesetzt werden (partial rollback) und Recoveryereignisse können darauf ansetzen - Bieten Vorteile bei langen Transaktionen, die Stunden, Tage oder Wochen dauern REKONSTRUKTION - Definition Dump: Eine Sicherheitskopie der gesamten DB auf einem nichtflüchtigen Medium Müssen regelmäßig erstellt und an unterschiedlichen Orten verwahrt werden (und nicht auf demselben Medium wie die DB) Haben dieselben Probleme wie Checkpoints und es gibt dieselben Dumptypen KOMPENSATION - Das Gegenstück zu Transaktionen, die durch Ausführung von inversen Operationen die betrachtete Transaktion kompensieren können 2 Voraussetzungen für Kompensation 1. Lange Transaktionen lassen sich in eigenständige Untereinheiten zerlegen 2. Zu jeder dieser Untereinheiten gibt es eine Kompensationstransaktion Kompensationen garantieren keine Serialisierbarkeit Da die Ausgaben an den Benutzer unwiderruflich sind Zusammenfasser: Jurij Weinblat, SoSe 2010. Alle Angaben ohne Gewähr. Quelle: Internetrecherche, Vorlesungsunterlagen von Prof. Dr. Rainer Unland, Mitschriften (Universität Duisburg-Essen)