Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Datenbank, Catalog-Space und Anwender-Spaces wiederherstellen

Beim Wiederherstellen unterscheidet man zwischen Reparatur und Zurücksetzen. Reparatur und Zurücksetzen führt der Datenbankverwalter mit der Utility-Anweisung RECOVER durch (siehe "Reparatur und Zurücksetzen").
Entsprechend den möglichen Sicherungseinheiten kann der Datenbankverwalter zwischen folgenden Einheiten für Reparatur und Zurücksetzen wählen:

  • gesamte SESAM/SQL-Datenbank mit Catalog-Space und allen Anwender-Spaces

  • Catalog-Space der Datenbank

  • einzelner Anwender-Space, Space-Liste oder Space-Set

Als Space-Set wird eine Einheit aus mehreren Anwender-Spaces mit gemeinsamem Zeitstempel bezeichnet. Spaces mit gleichem Zeitstempel entstehen bei der Sicherung mit einer COPY CATALOG-Anweisung oder bei der Sicherung mehrerer Spaces mit einer gemeinsamen COPY-Anweisung. Die Reparatur eines Space-Set als Einheit ist nur möglich, wenn außerdem das Logging zwischenzeitlich für keinen Anwender-Space dieses Space-Sets unterbrochen wurde.
Eine Space-Liste bezeichnet mehrere Anwender-Spaces aus der Sicherung einer gesamten Datenbank oder eines Space-Sets, die für eine gemeinsame RECOVER-Anweisung zusammengestellt werden. Die Spaces einer Space-Liste müssen alle den gleichen Zeitstempel tragen. Die Reparatur der Spaces einer Space-Liste ist nur möglich, wenn außerdem das Logging zwischenzeitlich für keinen Anwender-Space dieser Space-Liste unterbrochen wurde.

Zur Verkürzung der Recovery-Zeiten können Sie die Menge der Spaces bei RECOVER zusätzlich einschränken:

  • Geben Sie bei RECOVER die Klausel SCOPE PENDING an, werden die Anwender-Spaces repariert, wenn sie beim Öffnen als defekt erkannt werden.
    SCOPE PENDING ist bei Fremdkopien sowie bei RECOVER SPACESET ... TO oder RECOVER SPACE space-liste TO nicht erlaubt.

    Bei RECOVER CATALOG wird der Catalog-Space immer repariert und die Anwender-Spaces nur, wenn sie beim Öffnen als defekt erkannt werden.

    Bei RECOVER CATALOG ... TO wird der Catalog-Space immer zurückgesetzt.Die Anwender-Spaces werden nur zurückgesetzt, wenn sie beim Öffnen als defekt erkannt werden oder wenn aus Sicht des Catalogs eine Inkonsistenz zwischen Catalog-Space und Anwender-Space festgestellt wird. Eine solche Inkonsistenz besteht, wenn der Anwender-Space seit dem Zeitpunkt der Sicherung, auf die zurückgesetzt wird, geändert wurde.

  • Verwalten Sie Indizes auf Index-Spaces, d.h. auf Spaces, auf denen ausschließlich Indizes liegen und die nicht in der logischen Datensicherung sind. Zur Arbeit mit diesen Index-Spaces gibt es zwei Klauseln.

    • GENERATE INDEX ON NO LOG INDEX SPACE
      Diese Klausel können Sie bei RECOVER CATALOG angeben. Mit ihr werden die Spaces, auf denen ausschließlich Indizes liegen und die nicht in der logischen Datensicherung sind, zurückgesetzt und die Indizes neu aufgebaut.

    • NO INDEX
      Diese Klausel können Sie beim Zurücksetzen eines Anwender-Space, einer Space-Liste oder eines Space-Set angeben. Mit ihr werden Indizes als defekt gekennzeichnet und nicht neu aufgebaut, wenn sie durch das Zurücksetzen eines Space ungültig geworden sind. Dieser Fall tritt auf, falls die Basistabelle oder die partitionierte Tabelle und ein zugehöriger Index auf unterschiedlichen Anwender-Spaces liegen und nicht alle betroffenen Anwender-Spaces gleichzeitig zurückgesetzt werden.

Reparatur

Grundlage für die Reparatur bildet ein zuvor erstellter SESAM-Sicherungsbestand der Datenbank, des Catalog-Space oder eines Anwender-Space, einer Space-Liste bzw. eines Space-Sets und die daran anschließenden Logging-Dateien. Logging-Dateien für den Catalog-Space sind die CAT-LOG-Dateien, Logging-Dateien für die Anwender-Spaces sind die DA-LOG-Dateien.

Die zusammengehörigen Sicherungsdateien kann sich der Datenbankverwalter in Jobvariablen ausgeben lassen und zwar mit Hilfe der INF-Maske des Utility-Monitors. Über vorhandene SESAM-Sicherungsbestände des Catalog-Space informiert sich der Datenbankverwalter mit Hilfe des Utility-Monitors in der CAT-REC-Datei. Welche SESAM-Sicherungsbestände von den einzelnen Anwender-Spaces vorliegen, ermittelt der Datenbankverwalter ebenfalls mit Hilfe des Utility-Monitors aus der Catalog-Tabelle RECOVERY_UNITS (siehe dazu Handbuch „ Utility-Monitor“).
Die Reparatur bringt die Datenbank, den Catalog-Space oder einen Anwender-Space, eine Space-Liste bzw. ein Space-Set auf den Stand, der vor Eintreten der Fehlersituation vorlag.

Anwender-Spaces, der Catalog-Space oder die gesamte Datenbank können auch mit Hilfe von Fremdkopien repariert werden (siehe Abschnitt „Reparieren und Zurücksetzen mit Fremdkopien“).

Die Reparatur von Anwender-Spaces, des Catalog-Space oder der gesamten Datenbank ist auch auf Basis eines Replikats möglich (siehe Abschnitt „Originaldatenbank mit einem Replikat reparieren“).


Reparatur des Catalog-Space

Bei der Reparatur des Catalog-Space entnimmt SESAM/SQL aus der CAT-REC-Datei die Information über den SESAM-Sicherungsbestand des Catalog-Space, den der Datenbankverwalter bei RECOVER angegeben hat, und die Information über die zugehörigen CAT-LOG-Dateien. Anschließend spielt SESAM/SQL diesen SESAM-Sicherungsbestand ein und fährt auf diesem SESAM-Sicherungsbestand die in den CAT-LOG-Dateien protokollierten Änderungen nach.

Bild 18 veranschaulicht die Reparatur des Catalog-Space.


Bild 18: Reparatur des Catalog-Space


Reparatur von Anwender-Spaces

Bei der Reparatur eines Anwender-Space, einer Space-Liste oder eines Space-Set entnimmt SESAM/SQL aus der Catalog-Tabelle RECOVERY_UNITS Informationen über den SESAM-Sicherungsbestand jedes Anwender-Space, die der Datenbankverwalter bei RECOVER angegeben hat. Aus der Catalog-Tabelle DA_LOGS ermittelt SESAM/SQL die DA-LOG-Dateien, auf denen die Änderungen des Anwender-Space seit der Erstellung dieser Kopie protokolliert sind. Anschließend spielt SESAM/SQL den SESAM-Sicherungsbestand ein und fährt auf diesen SESAM-Sicherungsbestand die in den DA-LOG-Dateien protokollierten Änderungen nach.

Bild 19 veranschaulicht die Reparatur eines Anwender-Space.


Bild 19: Reparatur eines Anwender-Space


Reparatur der gesamten SESAM/SQL-Datenbank

Bei der Reparatur der gesamten Datenbank führt SESAM/SQL zunächst die Reparatur des Catalog-Space auf der Basis des bei RECOVER angegebenen SESAM-Sicherungsbestandes durch. Mit Hilfe der Metadaten des wiederhergestellten Catalogs repariert SESAM/SQL anschließend alle Anwender-Spaces der Datenbank auf der Basis des jeweils zuletzt erstellten SESAM-Sicherungsbestandes der einzelnen Anwender-Spaces. Demzufolge ist die Konsistenz der Datenbank nach ordnungsgemäßer Reparatur stets gewährleistet. Hat SESAM/SQL jedoch die Reparatur eines Anwender-Space z.B. wegen einer fehlenden oder defekten DA-LOG-Datei abgebrochen und den Anwender-Space im gerade vorliegenden Zustand „eingefroren“, dann kann der Datenbankverwalter wahlweise die Reparatur fortsetzen oder die Konsistenz der Datenbank in dem eingefrorenen Zustand herstellen.

Eine Reparatur, die SESAM/SQL wegen einer fehlenden oder defekten DA-LOG-Datei zunächst abgebrochen hat, kann der Datenbankverwalter mit RECOVER RESTART nach Bereitstellen einer entsprechenden intakten DA-LOG-Datei ordnungsgemäß zu Ende führen. Dazu muss der Datenbankverwalter die Utility-Anweisung RECOVER RESTART für jeden Anwender-Space ausführen.

Die Konsistenz der Datenbank in dem eingefrorenen Zustand stellt der Datenbankverwalter her, indem er die Utility-Anweisung RECOVER ADJUST für jeden Anwender-Space ausführt. Bei RECOVER ADJUST stellt SESAM/SQL die Konsistenz über dieselben Anpassungsmechanismen wieder her wie beim Zurücksetzen einzelner Anwender-Spaces (siehe „Konsistenz der Datenbank beim Zurücksetzen“).

Zurücksetzen

Zurücksetzen als Maßnahme zum Wiederherstellen einzelner Anwender-Spaces, einer Space-Liste, eines Space-Set, des Catalog-Space oder der gesamten Datenbank bietet sich immer dann an, wenn für die betreffende Sicherungseinheit das Logging ganz oder vorübergehend ausgeschaltet war (siehe "Logging") und demzufolge eine Reparatur nicht möglich ist.

Ebenfalls nur durch Zurücksetzen auf die zuletzt erstellten SESAM-Sicherungsbestände der betroffenen Spaces lässt sich ein Fehler in der Datenbank beheben, der durch ein fehlerhaftes Anwenderprogramm verursacht wurde. Dies gilt auch, wenn das Logging eingeschaltet war. Ein selektives Nachfahren der DA-LOG-Dateien, das die Datenänderungen durch das fehlerhafte Anwenderprogramm ausblendet, ist nicht möglich.

Anwender-Spaces, der Catalog-Space oder die gesamte Datenbank können auch mit Hilfe von Fremdkopien zurückgesetzt werden (siehe Abschnitt „Reparieren und Zurücksetzen mit Fremdkopien“).

Das Zurücksetzen von Anwender-Spaces, des Catalog-Space oder der gesamten Datenbank ist auch auf Basis eines Replikats möglich (siehe Abschnitt „Originaldatenbank mit einem Replikat reparieren“).


Zurücksetzen von Anwender-Spaces

Einen Anwender-Space, eine Space-Liste oder einen Space-Set setzt der Datenbankverwalter mit der Utility-Anweisung RECOVER TO zurück.

Grundlage für das Zurücksetzen bildet ein zuvor erstellter SESAM-Sicherungsbestand eines Anwender-Space, einer Space-Liste oder eines Space-Sets. Bei der Angabe einer Space-Liste oder eines Space-Sets müssen alle angesprochenen Spaces den gleichen Sicherungs-Zeitstempel tragen. Das Zurücksetzen bringt den Anwender-Space bzw. die in der Space-Liste oder in dem Space-Set zusammengefassten Anwender-Spaces auf den Stand, der zum Zeitpunkt der Erstellung der betreffenden SESAM-Sicherungsbestände vorlag.

ACHTUNG!

Ein RECOVER TO kann nicht rückgängig gemacht werden. Ein neuerer Stand kann nicht mehr erreicht werden.

Welche SESAM-Sicherungsbestände von den einzelnen Anwender-Spaces vorliegen, ermittelt der Datenbankverwalter mit Hilfe des Utility-Monitors aus der Catalog-Tabelle RECOVERY_UNITS.
Den gewünschten SESAM-Sicherungsbestand kann der Datenbankverwalter über die Versionsnummer der Sicherung, den Zeitstempel oder den Dateinamen des SESAM-Sicherungsbestandes auswählen.


Zurücksetzen von Anwender-Spaces auf eine Marke

Eine Marke ist ein spezieller Eintrag in der Catalog-Tabelle RECOVERY_UNITS des Informationsschemas. Sie besitzt einen Zeitstempel und erhält als RECOVER_TYPE die Bezeichnung „MARK“. Sie repräsentiert einen festgeschriebenen Stand der Datenbank, der auf Basis einer davor liegenden Sicherung über Nachfahren der Loggingdateien wiederhergestellt werden kann.

Eine Marke wird bei Ausführung der Utility-Funktionen LOAD OFFLINE, MIGRATE, IMPORT, RECOVER INDEX oder REORG ... NEW ROW_IDS bzw. bei der SSL-Anweisung ALTER SPACE ... NO LOG geschrieben. Mit Hilfe dieser Daten kann der Datenbankverwalter einen Anwender-Space mit der Utility-Anweisung RECOVER SPACE space USING rec_unit TO TIMESTAMP oder im Utility-Monitor über die Maske COP auf eine Marke zurücksetzen. rec_unit kann dabei ein SESAM-Sicherungsbestand, eine Fremdkopie oder ein Replikat sein.


Beispiel

Ein LOAD OFFLINE für den Space space soll rückgängig gemacht werden.

Folgende Arbeitsschritte sind nötig:

  1. Sicherung bereitstellen.

  2. Ermitteln Sie in der Catalog-Tabelle RECOVERY_UNITS des Informationsschemas den Eintrag, der den RECOVER_TYPE „MARK“ und den RECOVERY_TIMESTAMP before_load mit dem Zeitstempel des LOAD enthält.

  3. RECOVER-Anweisung ausführen:
    RECOVER SPACE space USING rec_unit TO TIMESTAMP before_load


Wenn die Funktionen LOAD OFFLINE, MIGRATE, IMPORT, RECOVER INDEX oder REORG ... NEW ROW_IDS mit Fehler abgebrochen werden, dann ist normalerweise die Marke noch nicht geschrieben. Der Space kann dann mit RECOVER SPACE space USING auf den Stand vor dem Funktionsaufruf zurückgesetzt werden. Bei LOAD OFFLINE ist zu beachten, dass zum Zeitpunkt des Abbruchs bereits Indizes als defekt gekennzeichnet sein können. Diese Indizes werden durch RECOVER SPACE space USING nicht neu aufgebaut, so dass ggf. noch RECOVER INDEX erforderlich ist.


Zurücksetzen der gesamten SESAM/SQL-Datenbank

Die gesamte Datenbank setzt der Datenbankverwalter mit der Utility-Anweisung RECOVER CATALOG zurück.

Dabei gibt es zwei Möglichkeiten:

  • Zurücksetzen auf einen zuvor erstellten SESAM-Sicherungsbestand mit RECOVER CATALOG TO:

    Das Zurücksetzen bringt die Datenbank auf den Stand, der zum Zeitpunkt der Erstellung des SESAM-Sicherungsbestandes vorlag.

    In diesem Fall führt SESAM/SQL zunächst das Zurücksetzen des Catalog-Space auf der Basis des bei RECOVER CATALOG TO angegebenen SESAM-Sicherungsbestandes durch. Mit Hilfe der Metadaten des zurückgesetzten Catalog-Space werden alle Anwender-Spaces der Datenbank auf der Basis des jeweils zuletzt erstellten SESAM-Sicherungsbestandes der einzelnen Anwender-Spaces repariert. Damit ist die Konsistenz der Datenbank nach ordnungsgemäßer Reparatur stets gewährleistet.

  • Zurücksetzen auf einen (frei) wählbaren Zeitpunkt mit
    RECOVER CATALOG [USING ...] TO [ANY] zeitstempel:

    Das Zurücksetzen bringt die Datenbank auf den Stand, der zum angegebenen Zeitpunkt vorlag. Wenn ANY nicht angegeben wird, dann muss zeitstempel den Zeitpunkt eines SESAM-Sicherungsbestandes des Catalog-Space bezeichnen. Der SESAM-Sicherungsbestand muss in der CAT-REC-Datei eingetragen sein.

    SESAM/SQL spielt den angegebenen SESAM-Sicherungsbestand des Catalog-Space (USING angegeben) oder den letzten SESAM-Sicherungsbestand des Catalog-Space vor dem angegebenen Zeitpunkt ein. Anschließend fährt SESAM/SQL die CAT-LOG-Dateien, die an diesen SESAM-Sicherungsbestand anschließen, bis zum angegebenen Zeitpunkt nach.

    Mit Hilfe der Metadaten des zurückgesetzten Catalog-Space werden alle Anwender-Spaces der Datenbank auf der Basis des jeweils zuletzt erstellten SESAM-Sicherungsbestandes der einzelnen Anwender-Spaces ermittelt und eingespielt. Anschließend fährt SESAM/SQL die DA-LOG-Dateien, die sich an diesen SESAM-Sicherungsbestand anschließen, bis zum angegebenen Zeitpunkt nach.

ACHTUNG!

Ein Zurücksetzen auf einen zuvor erstellten SESAM-Sicherungsbestand mit RECOVER TO kann nicht rückgängig gemacht werden.


Zurücksetzen des Catalog-Space

Den Catalog-Space setzt der Datenbankverwalter mit der Utility-Anweisung RECOVER CATALOG_SPACE TO zurück.

Grundlage für das Zurücksetzen bildet ein zuvor erstellter SESAM-Sicherungsbestand des Catalog-Space. Das Zurücksetzen bringt den Catalog-Space auf den Stand, der zum Zeitpunkt der Erstellung dieses SESAM-Sicherungsbestandes vorlag.

ACHTUNG!

Wird der Catalog-Space separat zurückgesetzt, kann in der Regel auf die Anwender-Spaces nicht mehr zugegriffen werden, weil ihr Änderungszeitstempel nicht mehr mit dem im Catalog vermerkten übereinstimmt.

Die Anwender-Spaces bleiben bei RECOVER CATALOG_SPACE TO unverändert und müssen einzeln repariert werden.

Welche SESAM-Sicherungsbestände von dem Catalog-Space vorliegen, ermittelt der Datenbankverwalter mit Hilfe des Utility-Monitors aus der CAT-REC-Datei.
Den gewünschten SESAM-Sicherungsbestand kann der Datenbankverwalter über die Versionsnummer der Sicherung, den Zeitstempel oder den Dateinamen des SESAM-Sicherungsbestandes auswählen.

ACHTUNG!

Ein Zurücksetzen auf einen zuvor erstellten SESAM-Sicherungsbestand mit RECOVER TO kann nicht rückgängig gemacht werden. Alle auf den angesprochenen Sicherungsbestand folgenden Datensätze werden in der CAT-REC-Datei gelöscht. Ein neuerer Stand kann nicht mehr erreicht werden.Sie können jedoch vor dem Zurücksetzen die CAT-REC-Datei und die CAT-LOG-Dateien außerhalb von SESAM/SQL sichern.

Konsistenz der Datenbank beim Zurücksetzen

Beim Zurücksetzen einzelner Anwender-Spaces, einer Space-Liste, eines Space-Sets oder des Catalog-Spaces ist die Konsistenz der gesamten Datenbank nicht in jedem Fall garantiert.

Konsistenz beim Zurücksetzen bedeutet dabei im Einzelnen:

  • Die Übereinstimmung der Metadaten im Catalog-Space (Tabellendefinitionen, Indexdefinitionen) mit der Struktur der Anwenderdaten des zurückgesetzten Anwender-Space.

  • Die Übereinstimmung der Anwenderdaten in einer Tabelle mit den zugehörigen Indizes.

  • Die Einhaltung der für die Tabellen definierten Integritätsbedingungen.

Wird der Catalog-Space separat zurückgesetzt, bleiben die Anwender-Spaces unverändert und müssen einzeln repariert werden. In der Regel kann auf die Anwender-Spaces nicht mehr zugegriffen werden, weil ihr Änderungszeitstempel nicht mehr mit dem im Catalog vermerkten übereinstimmt.

Werden einzelne Anwender-Spaces, eine Space-Liste oder ein Space-Set zurückgesetzt, erzwingt SESAM/SQL die Konsistenz zwischen den Metadaten im Catalog-Space und den Anwenderdaten unmittelbar im Anschluss an das Zurücksetzen über die nachfolgend beschriebenen Anpassungsmechanismen.

ACHTUNG!

Die Daten einer Tabelle können bei der Anpassung an die Metadaten im Catalog verloren gehen. Möchte der Datenbankverwalter sichergehen, dass beim Zurücksetzen kein Datenverlust auf Grund dieser Anpassungsmaßnahmen auftritt, sollte er die Datenbank stets als Ganzes sichern und zurücksetzen.


Konsistenz zwischen Catalog-Space und Anwender-Spaces

Die einen Anwender-Space beschreibenden Metadaten (Tabellendefinitionen, Indexdefinitionen) im Catalog-Space müssen konsistent sein mit der Struktur der Anwenderdaten auf diesem Anwender-Space. Diese Konsistenz ist jedoch in der Regel nicht mehr gegeben, wenn der Anwender-Space auf einen SESAM-Sicherungsbestand zurückgesetzt wird und seit Erstellen dieses SESAM-Sicherungsbestandes SQL-Anweisungen zur Verwaltung der Speicherstruktur sowie zur Schemadefinition und -verwaltung mit Auswirkungen auf diesen Anwender-Space ausgeführt worden sind.
So können z.B. seit dem Erstellen des SESAM-Sicherungsbestandes eine Basistabelle oder ein Index in einem Anwender-Space erzeugt worden sein, die dann nach dem Zurücksetzen im Anwender-Space nicht mehr vorhanden sind. Die zugehörigen Metadaten im Catalog-Space existieren aber nach wie vor. Ebenso ist es möglich, dass zwischenzeitlich eine Basistabelle oder ein Index im Anwender-Space gelöscht worden sind und damit auch die zugehörigen Metadaten im Catalog-Space. Nach dem Zurücksetzen des Anwender-Space sind dann Basistabelle oder Index im Anwender-Space vorhanden, ohne dass es die zugehörigen Metadaten im Catalog-Space gibt.

Zur Überwachung der Konsistenz zwischen Catalog-Space und Anwender-Spaces führt SESAM/SQL in jedem Anwender-Space eine systeminterne Tabelle, die eine Beschreibung dieses Anwender-Space enthält, entsprechend den zugehörigen Metadaten im CatalogSpace. Anhand dieser Tabelle stellt SESAM/SQL Abweichungen eines Anwender-Space von der zugehörigen Space-Beschreibung im Catalog-Space fest und passt dann den Anwender-Space wie folgt an die zugehörige Beschreibung im Catalog-Space an:

  • Tabellen und Indizes, die auf dem Anwender-Space nicht vorhanden sind, zu denen aber Metadaten im Catalog-Space existieren, richtet SESAM/SQL auf dem AnwenderSpace neu ein. Die Tabellen enthalten keine Daten, die Indizes sind korrekt aufgebaut und ebenfalls leer.

  • Tabellen und Indizes, die zwar auf einem Anwender-Space vorhanden sind, zu denen aber keine entsprechenden Metadaten im Catalog-Space mehr existieren, löscht SE-SAM/SQL auf dem Anwender-Space.

  • Tabellen, deren Definition und damit auch deren Beschreibung im Catalog-Space geändert wurde, löscht SESAM/SQL ebenfalls und richtet sie gemäß der geänderten Definition auf dem Anwender-Space neu ein. Diese neu erzeugten Tabellen sind leer.

Sind bei der Wiederherstellung der Konsistenz zwischen Catalog-Space und Anwender-Spaces durch SESAM/SQL Daten verloren gegangen, so kann der Datenbankverwalter die neu erzeugten, zunächst leeren Tabellen wie folgt mit den ursprünglichen Daten füllen:

  • Zunächst entlädt der Datenbankverwalter die Daten mit der Utility-Anweisung UNLOAD OFFLINE ... FROM COPY_FILE aus einem SESAM-Sicherungsbestand (siehe Handbuch „ SQL-Sprachbeschreibung Teil 2: Utilities“).

  • Anschließend lädt er diese Daten mit der Utility-Anweisung LOAD in die neu erzeugten Tabellen.


Konsistenz zwischen Basistabellen und zugehörigen Indizes

SESAM/SQL gewährleistet Konsistenz zwischen einer Basistabelle und den für sie definierten Indizes beim Zurücksetzen, indem es die Indizes neu aufbaut, falls die Basistabelle oder die partitionierte Tabelle und ein zugehöriger Index auf unterschiedlichen Anwender-Spaces liegen und der Datenbankverwalter nicht alle betroffenen Anwender-Spaces zurückgesetzt hat.
Wenn die Tabelle und die zugehörigen Indizes innerhalb derselben Space-Liste oder desselben Space-Set liegen und der Datenbankverwalter die Space-Liste oder den Space-Set zurückgesetzt hat, dann ist Konsistenz in jedem Fall gewährleistet. Ein Neuaufbau der Indizes durch SESAM/SQL findet in diesem Fall nicht statt.


Konsistenz zwischen Basistabellen und Integritätsbedingungen

Beim Zurücksetzen eines Anwender-Space prüft SESAM/SQL, ob dieser Anwender-Space Basistabellen enthält, für die Integritätsbedingungen definiert sind. In diesem Fall prüft SESAM/SQL, ob die aktuellen, im Catalog-Space definierten Integritätsbedingungen für die Basistabellen des zurückgesetzten Anwender-Space noch erfüllt sind.

Sofern eine Integritätsbedingung verletzt ist, versetzt SESAM/SQL den Anwender-Space in den Zustand „check pending“ (siehe Abschnitt „Space-Zustände nach der Ausführung von Utility-Anweisungen“).

Es ist Aufgabe des Datenbankverwalters, die Verletzung der Integritätsbedingungen zu beheben und damit den Anwender-Space aus dem Zustand „check pending“ zu befreien. Er verwendet hierzu die Utility-Anweisung CHECK CONSTRAINTS (siehe "Integritätsbedingungen prüfen") sowie SQL-Anweisungen zum Abfragen und Ändern von Daten, die er mit dem Pragma CHECK OFF absetzt (siehe "Gesperrte Anwender-Spaces bearbeiten").

Wiederherstellen von Datenbanken in unterschiedlichen Situationen

Durch geeignete Recovery-Maßnahmen kann eine defekte SESAM/SQL-Datenbank nach vielen unterschiedlichen Fehlersituationen (siehe "Mögliche Fehlersituationen und geeignete Recovery- Maßnahmen") wiederhergestellt werden. In der Regel führen die verschiedenen RECOVER-Anweisungen problemlos zur Wiederherstellung der Datenbank. Daneben können besondere Problem-Situationen auftreten, in denen die Datenbank jedoch durch geeignete Maßnahmen wiederhergestellt werden kann. In manchen Situationen kommt es nach diesen Maßnahmen zu Datenverlust. In jedem Fall gewährleistet SESAM/SQL jedoch die Konsistenz zwischen Catalog-Space und AnwenderSpaces.


Wiederherstellen von Anwender-Spaces in unterschiedlichen Situationen

Tabelle 48 beschreibt neben dem Standardfall für den RECOVER SPACE unterschiedliche Problem-Situationen und entsprechende Maßnahmen, mit denen ein Anwender-Space repariert oder zurückgesetzt werden kann.

Situation

Maßnahmen

Ergebnis/
Bemerkung

Logische Datensicherung eingeschaltet; SESAM-Sicherungsbestand
und zugehörige DA-LOGs verfügbar

Ordnungsgemäße Reparatur des Space:
RECOVER SPACE

Space ist repariert

DA-LOG-Datei nicht zugreifbar, RECOVER SPACE abgebrochen

Falls DA-LOG-Datei verfügbar gemacht werden kann:

Fortsetzen mit RECOVER RESTART

Space ist repariert

Falls DA-LOG-Datei nicht verfügbar gemacht werden kann:

Reparatur mit RECOVER ADJUST beenden

Datenverlust durch nicht verfügbare
DA-LOG und folgende DA-LOGs

SESAM-Sicherungsbestand nicht mehr verfügbar

Falls anderer SESAM-Sicherungsbestand und
zugehörige DA-LOGs vorhanden:
mit RECOVER USING auf diesen
SESAM-Sicherungsbestand aufsetzen

Space ist repariert

Falls Eintrag für SESAM-Sicherungsbestand mit MODIFY bereits gelöscht:
mit RECOVER TO COPY_FILE auf diesen SESAM-Sicherungsbestand zurücksetzen.
Bandsicherungen müssen zuvor mit HSMS oder ARCHIVE eingespielt und umbenannt worden
sein.

Datenverlust, da DA-LOGs nicht
nachgefahren werden können

Space für RECOVER nicht zugreifbar

Datenbank mit Administrationsanweisungen in den Status FREE, dann wieder in den Status ACTIVE versetzen oder alternativ DBH herunterfahren und wieder neu starten.
Den defekten Space für Diagnosezwecke sicherstellen:

1.

entweder defekten Space mit BS2000-Mitteln umbenennen

2.

oder defekten Space mit BS2000-COPY kopieren und anschließend den defekten Originalspace löschen

RECOVER wiederholen

Space ist repariert

Space defekt, aber kein SESAM-Sicherungsbestand vorhanden

Wiederherstellen des leeren Space mit RECOVER SPACE TO COPY_FILE '*DUMMY'. Space ist wieder zugreifbar.
Mit dem Space weiterarbeiten, Laden von Daten.

Zunächst vollständiger Verlust der Daten des Anwender-Space.
Mit dem Space kann weiter gearbeitet werden.

Space mit DROP SPACE FORCED entfernen.

Vollständiger Verlust der Daten des Anwender-Space.
Konsistenz zwischen Anwender-Spaces und Metadaten ist wieder hergestellt.

Tabelle 48: Mögliche Abläufe bei RECOVER SPACE


Wiederherstellen der Datenbank oder des Catalog-Space in unterschiedlichen Situationen

Tabelle 49 beschreibt neben dem Standardfall für den RECOVER CATALOG bzw. RECOVER CATALOG_SPACE unterschiedliche Problem-Situationen und entsprechende Maßnahmen, mit denen die Datenbank bzw. der Catalog-Space repariert oder zurückgesetzt werden kann.

Situation

Maßnahmen

Ergebnis/
Bemerkung

Logische Datensicherung eingeschaltet; SESAM-Sicherungsbestand und zugehörige CAT-LOG und DA-LOGs verfügbar

RECOVER CATALOG_SPACE bzw. RECOVER CATALOG ausführen

Klausel SCOPE PENDING:
Nur defekte Spaces werden repariert.

Catalog-Space bzw. Datenbank sind repariert

Logische Datensicherung ausgeschaltet für reine Index-Spaces aber eingeschaltet für alle übrigen Spaces; SESAM-Sicherungsbestand und zugehörige CAT-LOG und DA-LOGs verfügbar für alle Spaces in der logischen Datensicherung

RECOVER CATALOG ... GENERATE INDEX ON NO LOG INDEXSPACE ausführen.

Datenbank ist repariert, Indizes sind neu aufgebaut

Probleme bei der Reparatur von Spaces beim RECOVER CATALOG

Zuerst RECOVER CATALOG_SPACE, dann Wiederherstellen der einzelnen Spaces mit RECOVER SPACE

siehe Tabelle 48

CAT-LOG-Datei nicht mehr verfügbar

Falls CAT-LOG-Datei verfügbar gemacht werden kann: Wiederholen des RECOVER CATALOG_SPACE bzw.
RECOVER CATALOG

Catalog-Space bzw. Datenbank sind
repariert

Falls CAT-LOG-Datei nicht verfügbar gemacht werden kann:

1.

Mit RECOVER ... TO auf den jüngsten SESAM-Sicherungsbestand zurücksetzen.

2.

Prüfen, ob evtl. Maßnahmen zur Erzeugung einer neuen CAT-REC- Datei sinnvoll sind.
Dazu muss der Software-Kundendienst eingeschaltet werden.
Ggf. RECOVER CATALOG_SPACE bzw.
RECOVER CATALOG ausführen.

1.

Datenverlust, da keine CAT-LOGs nachgefahren werden.

2.

Datenverlust, da nur die
CAT-LOGs vor der fehlenden CAT-LOG-Datei nachgefahren werden können.

SESAM-Sicherungsbestand nicht mehr verfügbar

Falls anderer SESAM-Sicherungsbestand sowie zugehörige CAT-LOG- und DA-LOG-Dateien vorhanden:
mit RECOVER USING auf diesen SESAM-Sicherungsbestand aufsetzen.

Catalog-Space bzw. Datenbank sind repariert

Falls Eintrag für geeigneten SESAM-Sicherungsbestand
bereits aus der CAT-REC-Datei gelöscht:
Prüfen, ob evtl. Maßnahmen zur Erzeugung neuer CAT-REC-Datei sinnvoll. Dazu muss der Software-Kundendienst kontaktiert werden.

Vollständiger Datenverlust, da Reparatur nur mit Dateien möglich, die in CAT-REC verzeichnet sind.

Catalog-Space für RECOVER CATALOG[_SPACE] nicht zugreifbar

1.

Datenbank mit Administrationsanweisungen in denStatus FREE, dann wieder in den Status ACTIVE versetzen

2.

oder DBH herunterfahren und wieder neu starten

Den defekten Catalog-Space für Diagnosezwecke sicherstellen und löschen.
Catalog wieder in das SQL-Datenbankverzeichnis eintragen bzw. DBH wieder starten und RECOVER CATALOG[ _SPACE] wiederholen.

Catalog-Space ist repariert

Tabelle 49: Mögliche Abläufe bei RECOVER CATALOG und RECOVER CATALOG_SPACE


Wiederherstellen der Datenbank bei defekter CAT-REC-Datei

Die CAT-REC-Datei sollte möglichst parallel geführt werden (siehe „Sichern der CAT-REC-Datei der Originaldatenbank“). Falls die CAT-REC-Datei dennoch einmal defekt ist, muss der Software-Kundendienst kontaktiert werden.