Verteiltes DBMS - Datenbankwiederherstellung

Um sich von Datenbankfehlern zu erholen, greifen Datenbankverwaltungssysteme auf eine Reihe von Wiederherstellungsverwaltungstechniken zurück. In diesem Kapitel werden die verschiedenen Ansätze für die Datenbankwiederherstellung untersucht.

Die typischen Strategien für die Datenbankwiederherstellung sind:

  • Bei Softfehlern, die zu einer Inkonsistenz der Datenbank führen, umfasst die Wiederherstellungsstrategie das Rückgängigmachen oder Zurücksetzen von Transaktionen. Manchmal kann jedoch auch eine Transaktionswiederholung angewendet werden, um einen konsistenten Status der Transaktion wiederherzustellen.

  • Bei schweren Fehlern, die zu erheblichen Schäden an der Datenbank führen, umfassen Wiederherstellungsstrategien das Wiederherstellen einer früheren Kopie der Datenbank aus der Archivsicherung. Ein aktuellerer Status der Datenbank wird durch Wiederherstellen von Vorgängen festgeschriebener Transaktionen aus dem Transaktionsprotokoll erhalten.

Wiederherstellung nach einem Stromausfall

Ein Stromausfall führt zu einem Informationsverlust im nicht persistenten Speicher. Wenn die Stromversorgung wiederhergestellt ist, werden das Betriebssystem und das Datenbankverwaltungssystem neu gestartet. Der Wiederherstellungsmanager initiiert die Wiederherstellung aus den Transaktionsprotokollen.

Im Falle eines sofortigen Aktualisierungsmodus führt der Wiederherstellungsmanager die folgenden Aktionen aus:

  • Transaktionen, die sich in der aktiven Liste und der fehlgeschlagenen Liste befinden, werden rückgängig gemacht und in die Abbruchliste geschrieben.

  • Transaktionen, die sich in der Liste vor dem Festschreiben befinden, werden wiederholt.

  • Für Transaktionen in Festschreibungs- oder Abbruchlisten werden keine Maßnahmen ergriffen.

Im Falle eines verzögerten Aktualisierungsmodus führt der Wiederherstellungsmanager die folgenden Aktionen aus:

  • Transaktionen, die sich in der aktiven Liste und der fehlgeschlagenen Liste befinden, werden in die Abbruchliste geschrieben. Es sind keine Rückgängig-Vorgänge erforderlich, da die Änderungen noch nicht auf die Festplatte geschrieben wurden.

  • Transaktionen, die sich in der Liste vor dem Festschreiben befinden, werden wiederholt.

  • Für Transaktionen in Festschreibungs- oder Abbruchlisten werden keine Maßnahmen ergriffen.

Wiederherstellung nach einem Festplattenfehler

Ein Festplattenfehler oder ein harter Absturz führt zu einem vollständigen Datenbankverlust. Um diesen schweren Absturz wiederherzustellen, wird eine neue Festplatte vorbereitet, das Betriebssystem wiederhergestellt und schließlich die Datenbank mithilfe der Datenbanksicherung und des Transaktionsprotokolls wiederhergestellt. Die Wiederherstellungsmethode ist für den sofortigen und den verzögerten Aktualisierungsmodus gleich.

Der Wiederherstellungsmanager führt die folgenden Aktionen aus:

  • Die Transaktionen in der Festschreibungsliste und der Vor-Festschreibungsliste werden wiederholt und in die Festschreibungsliste im Transaktionsprotokoll geschrieben.

  • Die Transaktionen in der aktiven Liste und der fehlgeschlagenen Liste werden rückgängig gemacht und in die Abbruchliste im Transaktionsprotokoll geschrieben.

Checkpointing

Checkpointist ein Zeitpunkt, zu dem ein Datensatz aus den Puffern in die Datenbank geschrieben wird. Infolgedessen muss der Wiederherstellungsmanager im Falle eines Systemabsturzes die Transaktionen, die vor dem Checkpoint festgeschrieben wurden, nicht wiederholen. Regelmäßiges Checkpointing verkürzt den Wiederherstellungsprozess.

Die zwei Arten von Checkpointing-Techniken sind -

  • Konsistentes Checkpointing
  • Fuzzy Checkpointing

Konsistentes Checkpointing

Durch konsistentes Checkpointing wird ein konsistentes Image der Datenbank am Checkpoint erstellt. Während der Wiederherstellung werden nur die Transaktionen rückgängig gemacht oder wiederholt, die sich auf der rechten Seite des letzten Prüfpunkts befinden. Die Transaktionen auf der linken Seite des letzten konsistenten Prüfpunkts sind bereits festgeschrieben und müssen nicht erneut verarbeitet werden. Die zum Checkpointing ergriffenen Maßnahmen sind:

  • Die aktiven Transaktionen werden vorübergehend ausgesetzt.
  • Alle Änderungen in den Hauptspeicherpuffern werden auf die Festplatte geschrieben.
  • Ein "Checkpoint" -Datensatz wird in das Transaktionsprotokoll geschrieben.
  • Das Transaktionsprotokoll wird auf die Festplatte geschrieben.
  • Die angehaltenen Transaktionen werden fortgesetzt.

Wenn in Schritt 4 auch das Transaktionsprotokoll archiviert wird, hilft dieser Prüfpunkt bei der Wiederherstellung nach Festplatten- und Stromausfällen, andernfalls hilft er nur bei der Wiederherstellung nach Stromausfällen.

Fuzzy Checkpointing

Beim Fuzzy-Checkpointing werden zum Zeitpunkt des Checkpoints alle aktiven Transaktionen in das Protokoll geschrieben. Bei einem Stromausfall verarbeitet der Wiederherstellungsmanager nur die Transaktionen, die während des Prüfpunkts und später aktiv waren. Die Transaktionen, die vor dem Checkpoint festgeschrieben wurden, werden auf die Festplatte geschrieben und müssen daher nicht erneut ausgeführt werden.

Beispiel für Checkpointing

Nehmen wir an, dass im System die Zeit des Checkpointing tcheck und die Zeit des Systemabsturzes tfail ist. Es gebe vier Transaktionen T a , T b , T c und T d, so dass -

  • T a legt vor dem Checkpoint fest.

  • T b startet vor dem Checkpoint und wird vor dem Systemabsturz festgeschrieben.

  • T c startet nach dem Checkpoint und wird vor dem Systemabsturz festgeschrieben.

  • T d startet nach dem Checkpoint und war zum Zeitpunkt des Systemabsturzes aktiv.

Die Situation ist in der folgenden Abbildung dargestellt -

Die vom Wiederherstellungsmanager ausgeführten Aktionen sind:

  • Mit T a wird nichts gemacht .
  • Die Transaktionswiederholung wird für T b und T c durchgeführt .
  • Das Rückgängigmachen der Transaktion wird für T d durchgeführt .

Transaktionswiederherstellung mit UNDO / REDO

Die Wiederherstellung von Transaktionen wird durchgeführt, um die nachteiligen Auswirkungen fehlerhafter Transaktionen zu beseitigen, anstatt sich von einem Fehler zu erholen. Zu den fehlerhaften Transaktionen gehören alle Transaktionen, die die Datenbank in einen unerwünschten Zustand versetzt haben, sowie die Transaktionen, bei denen Werte verwendet wurden, die von den fehlerhaften Transaktionen geschrieben wurden.

Die Wiederherstellung von Transaktionen ist in diesen Fällen ein zweistufiger Prozess -

  • Machen Sie alle fehlerhaften Transaktionen und Transaktionen, die von den fehlerhaften Transaktionen betroffen sein könnten, rückgängig.

  • REDO alle Transaktionen, die nicht fehlerhaft sind, aber aufgrund der fehlerhaften Transaktionen rückgängig gemacht wurden.

Schritte für die UNDO-Operation sind -

  • Wenn die fehlerhafte Transaktion INSERT ausgeführt hat, löscht der Wiederherstellungsmanager die eingefügten Datenelemente.

  • Wenn die fehlerhafte Transaktion DELETE ausgeführt hat, fügt der Wiederherstellungsmanager die gelöschten Datenelemente aus dem Protokoll ein.

  • Wenn die fehlerhafte Transaktion UPDATE ausgeführt hat, entfernt der Wiederherstellungsmanager den Wert, indem er den Wert vor der Aktualisierung aus dem Protokoll schreibt.

Schritte für die REDO-Operation sind -

  • Wenn die Transaktion INSERT ausgeführt hat, generiert der Wiederherstellungsmanager eine Einfügung aus dem Protokoll.

  • Wenn die Transaktion DELETE ausgeführt hat, generiert der Wiederherstellungsmanager ein Löschen aus dem Protokoll.

  • Wenn die Transaktion UPDATE ausgeführt hat, generiert der Wiederherstellungsmanager eine Aktualisierung aus dem Protokoll.