-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf die Datenbankwiederherstellung
unter Benutzung von Sicherungskopien und Sammeldateien für Änderungen.
Im Besonderen bezieht sich die Erfindung auf die Wiederherstellung
von Datenbanken unter Verwendung vollständiger und unvollständiger Änderungssammeldateien.
-
Relevante Technologie
-
Die
Verwaltung umfangreicher Datenbanken ist für die heutige Gesellschaft
von herausragender Bedeutung, da diese auf die zuverlässige Speicherung
von Daten, welche entscheidende Informationen darstellen, angewiesen
ist. Datenbanken müssen üblicherweise
fortwährend
betriebsbereit und den Benutzern zugänglich sein. Moderne Datenbanksysteme
sind im Wesentlichen zuverlässig,
sodass sie nur selten ausfallen. Wenn trotzdem ein Ausfall auftritt,
muss die Wiederherstellung der Datenbank effizient und akkurat erfolgen,
um den Datenverlust für
die Benutzer zu minimieren. Daher hat die Datenbankwiederherstellung
schnell zu erfolgen, um die Ausfallzeit für die Benutzer zu begrenzen. Fällt eine
Datenbank für
längere
Zeit aus, so kann dies schnell zu einer wirtschaftlichen Katastrophe führen.
-
Datenbanken
werden von komplexen Datenbankverwaltungssystemen verwaltet. Ein
Beispiel für ein
Datenbankverwaltungssystem stellt das Information Management System
(IMS) der IBM Corp., Armonk, New York, dar. Das INS wird heute zur
Verwaltung einer enormen Zahl von Datenbanken eingesetzt und gestattet
den Zugriff auf eine oder mehrere Datenbanken, damit Benutzer mit
den in der Datenbank verwalteten Daten interagieren können. Die Mehrzahl
der Benutzerzugriffe schließt
Transaktionsoperationen ein.
-
Während die
Benutzer die Datenbankdateien in der Datenbank aktualisieren, zeichnet
das Datenbankverwaltungssystem die Aktualisierungen in einer Protokolldatei
auf. Die Protokolldatei ist eine Datenmenge, die eine Reihe von
Datenbankaktualisierungen widerspiegelt. Protokolldateien werden
in sequenziellen Datensätzen
mit definierten Öffnungs- und
Schließpunkten
aufgezeichnet.
-
Die
Benutzer können
regelmäßig Sicherungskopien
oder Sicherungskopiereihen von der Datenbank erstellen, um die Datenbankwiederherstellung
zu unterstützen.
Diese Sicherungskopien können
mit Hilfe von Bandverwaltungssystemen in Bandarchiven aufgezeichnet
werden. Die Sicherungskopie dient als Grundlage für die Wiederherstellung
der Datenbank zu ihrem Zustand vor Auftreten eines Datenbankausfalls.
Bei der Wiederherstellung kommen aufeinander folgende Datenbank-aktualisierungen
aus den Datensätzen
der Protokolldateien zur Anwendung. Des Weiteren müssen für eine Wiederherstellung
Datenbank- und Sicherungsattribute gespeichert werden. Datenbankverwaltungssysteme
beinhalten häufig
eine Datei zur Steuerung der Wiederherstellung, die verschiedene
Datenbank- und Sicherungskopie-Attribute
umfasst. Datenbankverwaltungssysteme bedienen sich irgendeiner Form von
in dieser Datei aufgezeichneten Wiederherstellungssteuerinformationen,
die sich auf die Datenbank und die Sicherungskopie beziehen, um
die Wiederherstellung zu unterstützen.
-
Datenbankverwaltungssysteme
enthalten eine Wiederherstellungsfunktion, die auf einen Datenbankausfall
reagiert. Tritt ein Datenbankausfall auf, erstellt die Wiederherstellungsfunktion
eine neue Datenbank und schreibt die Sicherungskopie in die neue
Datenbank. Das Wiederherstellungsdienstprogramm wendet des Weiteren
alle Aktualisierungen – vom
Zeitpunkt der Erstellung der Sicherungskopie an – auf die Datenbank an. Die
für die
Wiederherstellung der neuen Datenbank aus dem aktuellen Stand der Sicherungskopie
verwendeten Informationen können aus
den Protokolldateien und den Steuerinformationen zur Wiederherstellung
bezogen werden.
-
Um
die Datenbankwiederherstellung zu unterstützen, sammelt ein Dienstprogramm,
in diesem Dokument als Dienstprogramm zum Sammeln von Änderungen
bezeichnet, Aktualisierungen und legt sie in einer Änderungssammeldatei
(change accumulation data set, CADS) ab. Die CADS besteht aus einer
Sammlung von Änderungen
in den Protokolldatensätzen,
die die neue Datenbank betreffen und als Eingabe während der
Datenbankwiederherstellung dienen. Die CADS kann Aktualisierungen
für mehrere
Datenbanken widerspiegeln. Ein typischer Datenbankdatensatz wird
schrittweise aktualisiert, und da dabei sich überlappende Aktualisierungen
auftreten können,
spielt die Reihenfolge der Wiederherstellung eine wichtige Rolle.
Die CADS empfängt
die sich überlappenden
Aktualisierungen, spiegelt jedoch, nach allen Änderungen, nur die zum Schluss
vorgenommenen Änderungen
wieder.
-
Um
die CADS zu erstellen, liest das Änderungssammeldienstprogramm
Protokolle sequenziell, also eins nach dem anderen. Üblicherweise
ordnen die Benutzer ihre mehreren Datenbanken in Änderungssammelgruppen
an, damit das Dienstprogramm zum Sammeln von Änderungen so effizient wie
möglich
arbeitet. Ein Benutzer kann den Sammelprozess für Änderungen auf eine Änderungssammelgruppe
anwenden und eine optionale sekundäre Ausgabe – den Satz an Protokolldatensätzen, der nicht
in die CADS geschrieben wurde – als
Dateneingabe in das Änderungssammeldienstprogramm
für die
Bearbeitung der nachfolgenden Änderungssammelgruppe
verwenden. Dies kann für
jede Änderungssammelgruppe
durchgeführt
werden, bei der der aktuelle Änderungssammellauf
auf die sekundäre
Ausgabe des vorangegangenen Änderungssammellaufes
zurückgreift.
Dieser serielle Prozess wird unmittelbar durch den Benutzer verwaltet.
Benutzer führen
die Änderungssammlung
gewöhnlich
regelmäßig durch,
sodass die für
die Ausführung
eines abschließenden Änderungssammeljobs
und des nachfolgenden Datenbankwiederherstellungsjobs erforderliche
Zeit minimiert wird, wenn eine Datenbankdatei in einer Änderungssammelgruppe
wiederhergestellt werden muss. Wie zu erwarten, ist dieser sequenzielle
Wiederherstellungsprozess sehr komplex.
-
Das
Wiederherstellungsdienstprogramm liest die vollständige CADS
in den Speicher ein und bringt den für die Wiederherstellung der
Datenbank relevanten Teil der CADS zur Anwendung. Jeder Datensatz
verfügt über eine
sequenzielle Kennzeichnung und die Wiederherstellung der Datenbankdateien
erfolgt in sequenzieller Reihenfolge. Das Wiederherstellungsdienstprogramm
adressiert jeden Datensatz in der CADS, um zu überprüfen, ob eine Datenänderung
für diesen
Datensatz vorliegt. Ist dies der Fall, greift es auf die CADS zu
und der relevante Datensatz wird mit der neuen Datenbank gemischt.
-
Während des
Normalbetriebs werden vom Datenbankverwaltungssystem regelmäßig Datenbank-
und Protokolldateiaktualisierungen erzeugt, wobei mit der Zeit mehrere
Aktualisierungen erstellt werden. Wenn die Aktualisierungen nicht
physisch in die Datenbank geschrieben werden, werden sie jedoch
nicht dauerhaft in der Datenbank gespeichert. Im Allgemeinen basiert
die Datenbankaktivität
darauf, das „Festschreiben" von Aktualisierungen
in einer Datenbank zu ermöglichen.
Ein COMMIT-Punkt ist ein Zeitpunkt, zu dem Aktualisierungen permanenter
Bestandteil der Datenbank werden. Die Zeitspanne zwischen den COMMIT-Punkten wird als „COMMIT-Bereich" oder „Wiederherstellungseinheit" (unit of recovery,
UOR) bezeichnet. Tritt ein Fehler auf, zum Beispiel ein Fehler beim
Schreiben in die Datenbank, und die Aktualisierungen können nicht
durchgeführt
werden, werden alle seit dem letzten COMMIT-Punkt erzeugten Aktualisierungen „entfernt", so als ob sie nie
erstellt worden wären.
-
Ein
Verfahren zur Implementierung von Datenbankaktualisierungen und
COMMIT-Punkt-Verarbeitungen besteht darin, dass der Datenbankmanager
die Datenbankänderungen
verwaltet und die Änderungen
nicht vor dem Erreichen des COMMIT-Punktes auf die Datenbank anwendet.
Die geänderten
Datenbankdaten werden während
der Erstellung der Aktualisierung im Protokoll als Kopie abgelegt.
Wenn der COMMIT-Punkt erreicht ist und alle Operationen erwartungsgemäß abgelaufen
sind, werden die Aktualisierungen in die Datenbank geschrieben.
Trat ein Fehler auf, wird der Speicher, der die Datenbankaktualisierungen
enthält,
freigegeben.
-
Eine
normale Datenbankaktualisierung ist eine Transaktion, die eine logische
Arbeitseinheit darstellt, die die Ausführung verschiedener Vorgänge umfassen
kann. Auf der einfachsten Ebene kann eine Transaktion das Belasten
eines Kontos und das Gutschreiben eines anderen umfassen. Die Transaktionsvorgänge können über einen
ersten COMMIT-Punkt hinausgehen und werden nicht vor dem Erreichen
eines nachfolgenden COMMIT-Punkts zu permanenten Festschreibungen.
Das Änderungssammeldienstprogramm
erstellt die CADS, indem es Protokolldateien, die bis zu einem bestimmten
COMMIT-Punkt festgeschrieben
wurden, miteinander verknüpft.
Die festgeschriebenen Protokolldateien sind während der Wiederherstellung
leicht auf die neue Datenbank anzuwenden, da sie permanent sind.
Aktualisierungen, die nach dem zuletzt aufgezeichneten COMMIT-Punkt
auftreten, können
nicht leicht auf die neue Datenbank angewendet werden, da keine
Garantie dafür
besteht, dass die Aktualisierungen zu einem späteren COMMIT-Punkt festgeschrieben
werden. Ein Fehler bei einem COMMIT-Punkt führt dazu, dass die Aktualisierung
und alle damit verbundenen Transaktionen abgebrochen werden. Müssen die
Aktualisierungen abgebrochen werden, wird der Protokolldatensatz
abgerufen und die Kopien der unveränderten Datenbankdaten kommen
zur Anwendung, was dazu führt,
dass die Änderungen
zurückgesetzt werden.
Daher werden Aktualisierungen, die nach dem COMMIT-Punkt auftreten,
nicht notwendigerweise in der Datenbank festgeschrieben.
-
Jede
CADS enthält
einen Detaildatensatz, der einen Datensatz festgeschriebener Aktualisierungen
eines oder mehrerer Protokolle darstellt. Jeder Detaildatensatz
besteht aus einer Reihe zusammenhängender Bytes, die die Sicherungskopie
eines physischen Datenbankdatensatzes überschreiben können. Das
Anwenden aller Detaildatensätze
der CADS entspricht einer wiederholten Ausführung aller Transaktionen auf
die Datenbank, die seit Erstellen einer Sicherungskopie bis zu einem „Mischendpunkt" (merge-end point)
eingegeben wurden. Der Mischendpunkt ist ein Zeitpunkt, zu dem Aktualisierungen
nicht mehr mit der neuen Datenbank gemischt werden können, weil
nicht alle Änderungsdatensätze für diese
Aktualisierungen zur Verfügung
stehen. Daher besteht für
die Festschreibung der Aktualisierungen keine Garantie.
-
Diejenigen
Aktualisierungen, die nicht mit der neuen Datenbank gemischt werden
können,
werden in als „Reservedatensätze" (spill records)
bezeichnete Datensätze
geschrieben. Eine vollständige CADS
umfasst ausschließlich
Detaildatensätze,
wohingegen eine unvollständige
CADS sowohl Detaildatensätze
als auch Reservedatensätze
umfasst. Die Erstellung einer unvollständigen CADS erfolgt, wenn mehrere
Datenbankverwaltungssysteme eine Datenbank gemeinsam benutzen. Die
Mehrzahl der Datenbankverwaltungssysteme laufen in einer gemeinsamen
Sitzung, um die Nutzung der Datenbank zu maximieren. Während einer
gemeinsamen Sitzung entstehen unvollständige Protokolldateien, die Aktualisierungen
für Zeiträume enthalten,
in denen nicht alle Protokolldatensätze zur Verfügung stehen. In
einer gemeinsamen Sitzung von mehreren Datenbankverwaltungssystemen
ist es unmöglich,
eine vollständige
CADS zu haben, ohne die Datenbank offline zu nehmen und die Protokolldateien
zu überprüfen.
-
Aktualisierungsdatensätze von
unvollständigen
Protokolldateien können
aufgrund der nicht verfügbaren
Protokolldatensätze
vom Änderungssammeldienstprogramm
nicht aufgelöst
werden. Das Änderungssammeldienstprogramm
ist nicht in der Lage, diese Aktualisierungsdatensätze aufzulösen und „weiß" nicht, ob die Aktualisierungen
zur Anwendung kommen sollen oder nicht. Diese Aktualisierungsdatensätze werden
in die Reservedatensätze
geschrieben. Wenn die relevanten Protokolldatensätze verfügbar werden, können die
Aktualisierungsdatensätze
der Reservedatensätze
in einem anschließenden Änderungssammelprozess
gelesen und mit anderen Aktualisierungen gemischt werden. Die Änderungsdatensätze sind
während
der gemeinsamen Sitzung unvollständig,
weil während
des Ablaufs des Änderungssammeldienstprogramms
die Aktualisierungen durchgeführt
werden und einige der Änderungsdatensätze nicht
zur Verfügung
stehen.
-
Bei
einem Datenbankausfall werden alle noch anstehenden Aktualisierungen
und Transaktionen beendet. Sind die Aktualisierungen zum Zeitpunkt
des Datenbankausfalls nicht festgeschrieben, werden die damit zusammenhängenden
Transaktionen abgebrochen. Aktualisierungen werden nicht dauerhaft
auf die Datenbank angewendet, bis sie festgeschrieben wurden. Während der
Wiederherstellung bestimmt das Wiederherstellungsdienstprogramm,
ob eine Aktualisierung mit einer Festschreibung oder einem Abbruch
endet. Endet die Aktualisierung mit einer Festschreibung, dann wird
die Aktualisierung auf die neue Datenbank angewendet; endet sie
mit einem Abbruch, dann hebt das Wiederherstellungsdienstprogramm
die Aktualisierung auf.
-
Die
Wiederherstellung einer gemeinsamen Datenbank geschieht in einem
zweistufigen Prozess. Zuerst muss das Wiederherstellungsdienstprogramm einen Änderungssammelprozess
ausführen,
um die relevanten Protokolldatensätze und die unvollständige CADS
zu lesen, um eine vollständige
CADS zu erstellen. Dieser Schritt ist erforderlich, weil das Wiederherstellungsdienstprogramm
die in einer unvollständigen
CADS enthaltenen Daten mit der neuen Datenbank nicht mischen kann.
Nach dem Stand der Technik sind somit Wiederherstellungsdienstprogramme
nicht in der Lage, Wiederherstellungen direkt mit einer unvollständigen CADS
auszuführen. Die
unvollständige
CADS muss zuvor vervollständigt werden.
Im zweiten Schritt wendet das Wiederherstellungsdienstprogramm die
Sicherungskopie, die vollständige
CADS und die Protokolldateien an und mischt diese Komponenten, um
die neue Datenbank zu erstellen.
-
Die
Vervollständigung
einer unvollständigen CADS
während
des Wiederherstellungsprozesses kann sehr lange dauern, da sie das
Lesen aller Protokolldateien, die Aktualisierungen aufweisen, erfordert.
Außerdem
erfordert der Wiederherstellungsprozess das Lesen der vollständigen CADSs, das
Mischen ihrer Daten mit den Protokollaktualisierungen und die Wiederherstellung
auf der Grundlage einer Sicherungskopie und, möglicherweise, jeglicher zusätzlicher
Protokolldateien, die in vervollständigten CADSs nicht enthalten
sind. Der Wiederherstellungsprozess kann ein sehr langwieriger Prozess
sein und für
Benutzer, die auf eine wiederhergestellte Datenbank dringend angewiesen
sind, zu sehr negativen Konsequenzen führen. Wenn ein Benutzer über eine Reihe
von Datenbanken verfügt
und mehrere dieser Datenbanken wiederhergestellt werden müssen, können außerdem mehrere
unvollständige
CADSs vorliegen, die vervollständigt
werden müssen.
Die Vervollständigung
mehrerer unvollständiger
CADSs macht das Lesen mehrerer Protokolldateien erforderlich. Normalerweise
wird für
jede unvollständige CADS
die entsprechende Protokolldatei sequenziell gelesen. Somit müssen während des
Wiederherstellungsprozesses, der ein relativ langwieriger Prozess sein
kann, riesige Datenmengen gelesen werden.
-
Eine
Datenbankwiederherstellung erfordert es, dass jede Sicherungskopie
und jede CADS sequenziell gelesen werden. Daher erfordert der Ausfall einer
einzigen Datenbank die Zeit, jede Sicherungskopie und jede CADS
zu lesen, zuzüglich
der Zeit, die Sicherungskopien zu schreiben und die CADSs mit der
wiederhergestellten Datenbank zu mischen. Diese Lesezeit fällt zusätzlich zu
der Zeit an, die für
die Vervollständigung
jeder unvollständigen
CADS erforderlich ist. Wenn mehrere Datenbanken, die alle auf Daten
in einer einzigen CADS zugreifen, wiederhergestellt werden müssen, liest
darüber
hinaus das Wiederherstellungsdienstprogramm die CADS für die Wiederherstellung
jeder Datenbank jeweils einmal. Das kann potenziell dazu führen, dass
die gleiche CADS mehrfach gelesen werden muss.
-
Die
Veröffentlichung "Write optimized obect-oriented
database systems," von
Kjetil Norvag und Kjell Bratbergsengen, 17th International Conference
of the Chilean Computer Science Society (SCCC '97), 1997, S.164 ff., beschreibt Datenstrukturen und
Algorithmen zur Realisierung eines objektorientierten Datenbanksystems,
bei dem Schreiboperationen optimiert sind.
-
Das
Buch "Recovery Mechanisms
in Database Systems" von
Vijay Kumar und Meichun Hsu, Prentice Hall, 1998, ISBN: 0-13-614215-X,
Kapitel 7 bis 9.6, Seiten 125–239
offenbart Wiederherstellungs-Mechanismen (recovery) und Protokollierverfahren
(logging) in Datenbanksystemen mit mehreren Ebenen (multi-level)
von Datensperren (locks) zur Erhöhung
der Nebenläufigkeit
(concurrency) von Transaktionen. Weiterhin wird ein Wiederherstellungsmechanismus
(recovery) von Transaktionen beschrieben, der Datensperren (locks)
feiner Granularität
und teilweises Zurückrollen
von Transaktionen (rollback) unterstützt, indem er eine vorausschreibende
(write-ahead) Protokollierung (logging) verwendet. Darüber hinaus
geht das Buch auf die Leistung (performance) von Wiederherstellungsmechanismen
bei zentralisierten Datenbank-Management-Systemen ein.
-
Deshalb
würde es
einen Fortschritt in der Technik darstellen, eine vereinfachte Datenbankwiederherstellungsvorrichtung
und ein Verfahren bereitzustellen, welche die Wiederherstellungszeit
nach einem Datenbankausfall wesentlich verringern. Das Verfahren
und die Vorrichtung sollten mehrere Datenbankdateien gleichzeitig
wiederherstellen. Ein weiterer technischer Fortschritt bestünde darin,
einen Datenbankwiederherstellungsprozess bereitzustellen, der die
Durchführung
eines Änderungssammelprozesses
zur Vervollständigung
einer unvollständigen
CADS überflüssig macht,
um so die Wiederherstellungszeit zu reduzieren. Ein weiterer technischer Fortschritt
bestünde
in der Beseitigung der Notwendigkeit, jede Sicherungskopie und jede
CADS für jede
CADS, die einer wiederherzustellenden Datenbank zugeordnet ist,
sequenziell zu lesen.
-
Im
vorliegenden Dokument wird ein solcher Fortschritt beschrieben und
Anspruch darauf erhoben.
-
ÜBERBLICK ÜBER DIE ERFINDUNG
-
Die
vorliegende Erfindung stellt eine Vorrichtung mit Wiederherstellungsdienstprogramm
zur Beschleunigung der Wiederherstellung bei einem Ausfall von einer
oder mehreren Datenbankdateien bereit. Die Erfindung beinhaltet
ein Sicherungskopie-Wiederherstellungsdienstprogramm zum Lesen und
Wiederherstellen einer Sicherungskopie einer wiederherzustellenden
Datenbankdatei. Die Vorrichtung mit Wiederherstellungsdienstprogramm
beinhaltet des Weiteren einen Änderungssammelmanager zum
Lesen von Detaildatensätzen
in einer oder mehreren CADSs. Des Weiteren umfasst die Erfindung einen
Protokollmanager zum Lesen eines oder mehrerer Protokolle, die der
fehlerhaften Datenbankdatei zugeordnet sind. Ein Imagekopier-Wiederherstellungs-Dienstprogramm wendet
die Detaildatensätze und
Aktualisierungen auf die Sicherungskopien an, um so eine wiederhergestellte
Datenbankdatei zu erstellen. Das Sicherungskopie-Wiederherstellungsdienstprogramm
liest eine oder mehrere Sicherungskopien der Datenbankdateien parallel.
Gleichzeitig liest der Änderungssammelmanager
eine oder mehrere CADSs parallel. Jede einer oder mehreren wiederherzustellenden
Datenbankdateien zugeordnete CADS wird nur einmal in den Speicher
eingelesen. Auf diese Weise wird die Wiederherstellungszeit durch
paralleles Ausführen
des Leseprozesses reduziert. Um den Wiederherstellungsprozess weiter
zu beschleunigen, werden – während die
Sicherungskopie in die wiederhergestellte Datenbank eingeschrieben
wird – Datensätze aus
der CADS mit der wiederhergestellten Datenbank je nach Bedarf und
Verfügbarkeit
gemischt.
-
In
einer gemeinsamen Umgebung ist jede CADS eine unvollständige CADS
und enthält
somit Detaildatensätze
und Reservedatensätze.
Der Änderungssammelmanager
liest lediglich die Detaildatensätze,
die festgeschrieben wurden, und ignoriert die Reservedatensätze. Dies
macht den oft zeitintensiven Prozess der Vervollständigung
jeder unvollständigen
CADS zur Wiederherstellung überflüssig.
-
Der
Protokollmanager liest ein oder mehrere Protokolle, um die Aktualisierungen
in den Reservedatensätzen
abzuleiten. Diese Aktualisierungen erfolgen im Anschluss an den
Mischendpunkt. Das Lesen der Protokolle bestätigt, welche Aktualisierungen der
Reservedatensätze
festgeschrieben wurden und mit der wiederhergestellten Datenbank
gemischt werden können.
Die Protokolle werden parallel gelesen, um die Lesezeit zu verkürzen, und
werden mit der wiederhergestellten Datenbank vor Beendigung des
Lesevorgangs gemischt.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine parallele Ausführung von
Leseprozessen für
Sicherungskopien, CADSs und Protokolle zur Verfügung zu stellen.
-
Es
ist eine weitere Aufgabe der Erfindung, gleichzeitiges Verarbeiten
und Mischen von Daten während
der Leseprozesse zu ermöglichen.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, das Lesen
einer CADS, die Daten mehrerer Datenbankdateien enthält, in einem einzigen
Vorgang zu ermöglichen.
-
Eine
weitere Aufgabe der Erfindung ist es, die Wiederherstellung einer
Datenbankdatei direkt aus einer oder mehreren unvollständigen CADSs, ohne
Ausführung
eines zusätzlichen Änderungssammeldienstprogramms,
zu bewerkstelligen.
-
Diese
und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung
werden anhand der nachfolgenden Beschreibung und der angehängten Ansprüche deutlicher
herausgestellt bzw. werden anhand der praktischen Anwendung der
Erfindung, wie nachfolgend dargelegt, verständlich.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Um
leichter verständlich
zu machen, wie die oben erwähnten
und weitere Vorteile und Aufgaben der Erfindung erreicht werden,
folgt eine detailliertere Beschreibung der oben kurz beschriebenen
Erfindung unter Bezugnahme auf spezielle, durch die angehängten Zeichnungen
illustrierte Ausführungsarten
der Erfindung. Die Erfindung wird durch Verwendung der beiliegenden
Zeichnungen mit zusätzlicher Spezifität und Details
beschrieben und erklärt,
wobei verstanden werden sollte, dass diese Zeichnungen lediglich
typische Ausführungsarten
der Erfindung darstellen und daher nicht als Einschränkungen
ihres Geltungsbereichs anzusehen sind:
-
1 stellt
ein schematisches Blockdiagramm von einer Ausführungsart eines Computersystems
zur Implementierung des Formatsystems der vorliegenden Erfindung
dar;
-
2 stellt
ein Blockdiagramm der Hardware- und Softwarekomponenten dar, das
die für
die Wiederherstellung einer oder mehrerer Datenbankdateien erforderlichen Übertragungen
und Verbindungen zwischen den Komponenten gemäß einer Ausführungsart
der Erfindung veranschaulicht;
-
3 ist
ein Blockdiagramm, das eine Ausführungsart
einer Wiederherstellungsvorrichtung zur Wiederherstellung von einer
oder mehreren Datenbankdateien gemäß einer Ausführungsart
der Erfindung veranschaulicht;
-
4 stellt
eine Veranschaulichung von Protokollzeitlinien dar, die sich auf
die Vorrichtung und das Verfahren zur Wiederherstellung einer oder
mehrerer Datenbankdateien beziehen; und
-
5 ist
ein Flussdiagramm, das eine Ausführungsart
eines Verfahrens zur Wiederherstellung einer oder mehrerer Datenbankdateien
veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSARTEN
-
Die
derzeit bevorzugten Ausführungsarten der
vorliegenden Erfindung können
am besten unter Bezugnahme auf die Zeichnungen, in denen gleiche Teile
durchweg mit gleichen Nummern bezeichnet werden, verstanden werden.
Es ist leicht verständlich,
dass die Komponenten der vorliegenden Erfindung, die anhand der
Figuren des vorliegenden Dokumentes allgemein beschrieben und veranschaulicht
werden, in einer Vielzahl verschiedener Konfigurationen konstruiert
und angeordnet werden können. Daher
ist die nachfolgende detailliertere Beschreibung der Ausführungsarten
von Vorrichtung, System und Verfahren der vorliegenden Erfindung,
wie in den 1 bis 5 dargelegt,
nicht dazu bestimmt, den Geltungsbereich der Erfindung gemäß der Patentansprüche zu begrenzen,
sondern stellt lediglich derzeit bevorzugte Ausführungsarten der Erfindung dar.
-
Die 1 bis 5 sind
schematische Blockdiagramme und ein Flussdiagramm, die bestimmte
Ausführungsarten
von Hardware- und
Softwaremodulen für
den Betrieb in einem Computersystem aus 1 gemäß der vorliegenden
Erfindung detaillierter veranschaulichen.
-
1 stellt
ein schematisches Blockdiagramm eines Computersystems 10 dar,
in dem Ausführungsbefehle
und Anwendungen, die gemäß der vorliegenden
Erfindung ablaufen, auf einer oder mehreren Computerstationen 12 als
Wirtsrechner in einem Netz 14 laufen können. Das Netz 14 kann
ein Weitverkehrsnetz (wide area network, WAN) und ebenso ein System
aus miteinander verbundenen Netzen, wie zum Beispiel das Internet
und das von Letzterem unterstützte
World Wide Web, umfassen.
-
Eine
typische Computerstation 12 kann eine logische Vorrichtung 16 beinhalten
und kann als Zentraleinheit (central processing unit, CPU), Mikroprozessor,
programmierbare Mehrzweckvorrichtung, anwendungsspezifische Hardware,
Statusmaschine (state machine) oder als eine andere Verarbeitungsmaschine
ausgeführt
sein. Die logische Vorrichtung 16 kann betriebsfähig mit
einer oder mehreren Speichervorrichtungen 18 verbunden
sein. Die Speichervorrichtungen 18 beinhalten in der Darstellung
eine permanente Speichervorrichtung 20, wie zum Beispiel
ein Festplattenlaufwerk, ein CD-ROM-Laufwerk, ein Bandlaufwerk oder
eine andere geeignete Speichervorrichtung. Die Speichervorrichtungen 18 umfassen
des Weiteren einen Nur-Lese-Speicher (read-only
memory, ROM) 22 und einen flüchtigen Arbeitsspeicher (random
access memory, RAM) 24. Der RAM 24 kann dazu dienen,
ausführbare
Befehle der logischen Vorrichtung 16 während der Ausführung zu
speichern. Die Speichervorrichtungen 18 können des
Weiteren einen virtuellen Speicher 25 enthalten, der in
einer Ausführungsart
Teil des permanenten Speichers 20 ist, der dazu dient,
den RAM 24 zu erweitern.
-
Das
Computersystem 10 kann ebenfalls über eine Eingabevorrichtung 26 verfügen, über die Benutzereingaben
oder Eingaben einer anderen Vorrichtung erfolgen können. Ebenso
kann eine Ausgabevorrichtung 28 Bestandteil des Computersystems 10 sein
oder von diesem aus zugänglich
sein. Ein Netz-Port, wie zum Beispiel eine Netzschnittstellenkarte 30,
kann für
die Verbindung mit systemfremden Vorrichtungen über das Netz 14 zur
Verfügung
stehen. Ist das Netz 14 von der Computerstation entfernt,
kann die Netzschnittstellenkarte 30 ein Modem umfassen
und die Verbindung zum Netz 14 mit Hilfe einer lokalen
Anschlussleitung, wie zum Beispiel einer Telefonleitung, herstellen.
-
Systemintern
kann ein Systembus 32 die logische Vorrichtung 16,
die Speichervorrichtungen 18, die Eingabevorrichtungen 26,
die Ausgabevorrichtungen 28, die Netzkarte 30 und
einen oder mehrere zusätzliche
Ports 34 betriebsfähig
miteinander verbinden. Den Systembus 32 kann man sich als
Datenträger
vorstellen. Der Systembus 32 an sich kann in zahlreichen
Konfigurationen ausgeführt
werden. Kabelleitungen, Lichtwellenleiter, drahtlose elektromagnetische Übertragung
durch das sichtbare Licht, Infrarotstrahlen und Funkfrequenzen können, wenn
geeignet, ebenso für
den Systembus 32 implementiert werden.
-
Im
Allgemeinen kann das Netz 14 ein einziges lokales Netz,
ein Weitverkehrsnetz, mehrere angrenzende Netze, ein Intranet oder
ein System miteinander verbundener Netze, wie das Internet, umfassen.
Die einzelnen Stationen 12 des Netzes 14 können unterschiedliche
Grade und verschiedene Arten von Übertragungsleistung und logischer
Leistungsfähigkeit
aufweisen. Verschiedene Übertragungsprotokolle,
wie zum Beispiel ISO/OSI, IPX, TCP/IP, können im Netz zur Anwendung
gelangen, im Fall des Internets ermöglicht jedoch ein einziges Schichten-Übertragungsprotokoll (TCP/IP)
die Übertragung
zwischen verschiedenartigen Netzen 14 und Stationen 12.
-
Das
Netz 14 kann eine Zentralverbindung 36 einschließen, die
die Stationen 12 miteinander verbindet. Die Zentralverbindung 36 kann
in jeder der zahlreichen Konfigurationen, auf die im Zusammenhang
mit dem Systembus 32 verwiesen wurde, ausgeführt werden.
Ein Router 38 kann auch die Verbindung zu einem oder mehreren
Netzen, einschließlich des
Internet 40, herstellen.
-
Die
Stationen 12 kommunizieren untereinander über die
Zentralverbindung 36 und/oder über das Internet 40.
Die Stationen 12 können
einen Anwendungsserver 42 und/oder Peripheriegeräte 44,
wie zum Beispiel Drucker, Scanner oder Faxgerät, umfassen. Daher kann generell
zu allen Stationen 12 eine Kommunikationsverbindung bestehen.
-
Ein
Aspekt der Erfindung betrifft eine Vorrichtung zur Wiederherstellung
einer oder mehrerer Datenbanken oder Datenbankdateien in einer gemeinsamen
oder nicht gemeinsamen Umgebung. In der Erörterung der verschiedenen Ausführungsarten
soll die Bezugnahme auf einzelne oder mehrere Bauteile die Erfindung
nicht ausschließlich
auf die dargelegte Konfiguration beschränken.
-
In 2 veranschaulicht
ein Blockdiagramm ein Datenbanksystem 200, das aus verschiedenen Komponenten
besteht. Das Datenbanksystem 200 kann ein oder mehrere
Datenbankverwaltungssysteme 202 umfassen. Die Datenbankverwaltungssysteme 202 werden
als DBMS1 bis DBMSn bezeichnet, um einen Unterschied der Datenbankverwaltungssysteme 202 innerhalb
des Datenbanksystems 200 anzuzeigen. Das Datenbankverwaltungssystem 202 kann
in eine Station 12 integriert sein, die in 1 dargestellt
ist. Ein Beispiel für
ein im Zusammenhang mit der Erfindung einsetzbares Datenbankverwaltungssystem
ist das IMS.
-
Jedes
Datenbankverwaltungssystem 202 kann ein Protokoll 204 mit
Protokolldatensätzen
beinhalten, um Aktualisierungen der Daten im Speicher 18 oder
in einer Datenbank 206 zu protokollieren. Das Protokoll 204 dient
als Referenz, um Datenänderungen
und andere vom jeweiligen Datenbankverwaltungssystem 202 ausgeführte Ereignisse
zu protokollieren. Änderungen
und andere Ereignisse werden im Protokoll 204 als Protokolldatensätze gespeichert.
Das Protokoll 204 kann in einer oder mehreren Speichervorrichtungen 18 der
Station 12 gespeichert werden.
-
Das
Datenbanksystem 200 umfasst darüber hinaus eine oder mehrere
Datenbanken 206 mit einer oder mehreren Datenbankdateien.
Die Datenbanken 206 werden als DB1 bis DBn bezeichnet,
um einen Unterschied in der Anzahl der Datenbanken 206 in
einem System 200 darzustellen. Die Datenbanken 206 können eine
hierarchisch strukturierte Datenbank darstellen, wie eine IMS-Datenbank,
sie können
in einer alternativen Ausführungsart
jedoch eine relationale Datenbank umfassen. Innerhalb der Anmeldung ist
der Bezug auf Datenbanken und auf Datenbankdateien austauschbar.
-
Jedes
Datenbankverwaltungssystem 202 kann den Zugriff auf eine
oder mehrere Datenbanken 206 gestatten, damit Benutzer mit
allen in den Datenbanken 206 verwalteten Daten einen Dialog
führen können. Ein
oder mehrere Datenbankverwaltungssysteme 202 können auch
eine einzige Datenbank 206 bedienen. Dies ist allgemein üblich, da
der Umfang von Datenbanken 206 zur effizienten Verwaltung
der Transaktionen oft den Einsatz mehrerer Datenbankverwaltungssysteme 202 erforderlich
macht. Eine gemeinsame Sitzung liegt vor, wenn eine Vielzahl von
Datenbankverwaltungssystemen 202 gleichzeitig auf eine
Datenbank 206 zugreift.
-
Die
Verbindung der Datenbankverwaltungssysteme 202 und Datenbanken 206 wird
durch eine elektrische Datenübertragung 208 gekennzeichnet. Die
elektrische Datenübertragung 208 kann
als Datenträger
angesehen werden und als eine Netzzentralverbindung 36 ausgeführt sein.
Elektrische Datenübertragung 208 erfordert
nicht, dass die Komponenten physisch miteinander verbunden sind.
Die elektrische Datenübertragung
kann elektromagnetisch, durch Infrarot-Strahlung oder andere drahtlose Übertragungen
erfolgen. Des Weiteren dient 2 ausschließlich Veranschaulichungszwecken,
da sich Datenbanksysteme 200 in ihrer Implementierung unterscheiden
und nicht jedes System 200 über mehrere Datenbankverwaltungssysteme 202 verfügt, die
mit mehreren Datenbanken kommunizieren. Für den Zweck der Erfindung ist
es ausreichend, dass ein Datenbankverwaltungssystem 202 mit
einer Datenbank 206 in elektrischer Datenübertragung 208 steht.
-
Datenbankwiederherstellungsverfahren
erfordern, dass eine Datenbank 206 über eine entsprechende Sicherungskopie 210 verfügt, die
als physische oder als logische Kopie vorliegen kann. In einer Ausführungsart
wird die Sicherungskopie 210 auf einem Magnetbandlaufwerk
gespeichert, obgleich auch andere Speichermittel zum Einsatz kommen können. Die
Sicherungskopie 210 stellt den Inhalt der Datenbank 206 bis zu
einem bestimmten Zeitpunkt dar und dient als Ausgangspunkt für den Datenbankwiederherstellungsprozess.
Die Sicherungskopie 210 stellt jedoch kein vollständiges Daten-Repository der
Datenbank 206 dar und zur Datenbankwiederherstellung werden,
wie unten ausgeführt,
zusätzliche
Daten benötigt.
Die Sicherungskopie 210 kann, je nachdem wie es für die Wiederherstellung
erforderlich ist, mit anderen Komponenten des Systems 200 in
einer elektrischen Datenübertragung 208 stehen.
-
Das
Datenbanksystem 200 beinhaltet des Weiteren ein Repository 212 von
wiederherstellungsbezogenen Informationen. Das Repository 212 dient dem
Speichern von Informationen, die beim Auftreten eines Datenträgerausfalls
oder eines anderen unbeabsichtigten Fehlers zur Wiederherstellung
verlorener Daten erforderlich sind. So kann zum Beispiel die Hardware
innerhalb eines Systems unerwartet ausfallen oder ein Benutzer kann
unbeabsichtigt fehlerhafte Daten oder Befehle eingegeben haben,
die zur Inkonsistenz einer oder mehrerer Datenbanken 206 führten. Das
Repository 212 umfasst Dateien mit Informationen, die sich
auf die Datenbankwiederherstellung beziehen und die für jede im
System 200 verwendete Datenbank 206 spezifisch
sein können.
Das Repository 212 steht mit den anderen Komponenten des
Systems 200 in einer elektrischen Datenübertragung 208, wie
es die Aktualisierung der Dateien im Repository 212 und
der Zugriff auf sie erfordert. Wiederherzustellende Datenbanken 206 können in
einer Wiederherstellungsliste angegeben sein, indem eine oder mehrere
Datenbankdateien, ganze Datenbanken 206 oder Gruppen, wie
im Repository 212 definiert, für die Wiederherstellung gekennzeichnet
werden. Diese Gruppen können
zum Beispiel Datenbankdateiengruppen oder andere Arten von Datenbankgruppen
umfassen.
-
Das
Datenbanksystem 200 umfasst eine oder mehrere CADSs 214,
die als CADS1 bis CADSn bezeichnet werden, um einen Unterschied
in der Anzahl der CADSs 214 innerhalb des Systems 200 anzuzeigen.
Die CADS 214 enthält
Datensätze,
die Änderungsdaten
aus einem oder mehreren Protokollen 204 für einen
bestimmten Zeitraum darstellen. Eine einzelne CADS 214 kann
darüber
hinaus Aktualisierungen einer oder mehrerer Datenbanken 206 darstellen.
Die CADS 214 kann in elektrischer Datenübertragung 208 mit
weiteren Komponenten stehen, je nachdem wie es für die Wiederherstellung einer
oder mehrerer Datenbanken 206 erforderlich ist.
-
In 3.
ist eine Vielzahl ausführbarer
Module, die für
den Einsatz innerhalb der Speichervorrichtungen 18 aus 1 geeignet
sind, zu sehen. Natürlich
können
die Speichervorrichtungen 18, in denen sich die Module
der vorliegenden Erfindung befinden, auch über lokale und ferne Computerstationen 12 verteilt
sein. Eine logische Konfiguration zur Datenbankwiederherstellung
wird in vorliegendem Dokument als Datenbank-Wiederherstellungsdienstprogramm 300 bezeichnet.
Das Datenbank-Wiederherstellungsdienstprogramm 300 kann,
wie in 1 gezeigt, in eine Station 12 oder in
den Server 42 integriert sein. Die Diskussion einer Implementierung des
Datenbank-Wiederherstellungsdienstprogramms 300 in Bezug
auf eine Station 12 oder den Server 42 ist nicht
als Einschränkung
gedacht. Das Datenbank-Wiederherstellungsdienstprogramm 300 kann
in verschiedenen Gerätekonfigurationen
implementiert sein, wovon Station 12 und Server 42 lediglich
Beispiele darstellen.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 kann in
eine Datenbank oder in mehrere Datenbanken 206 integriert
sein und verwaltet die physische Wiederherstellung der Datenbanken 206.
Das Datenbank-Wiederherstellungsdienstprogramm 300 umfasst
ein Sicherungskopie-Wiederherstellungsdienstprogramm 302 zum
Lesen und Wiederherstellen einer oder mehrerer Sicherungskopien 210.
In einer Ausführungsart
liest das Sicherungskopie-Wiederherstellungsdienstprogramm 302 eine
Sicherungskopie 210 von einem Magnetbandlaufwerk. Eine
Sicherungskopie 210 kann Sicherungskopiedateien für mehr als
eine Datenbank 206 enthalten. Alternativ kann eine Vielzahl
von Sicherungskopien 210 für eine einzige Datenbank 206 bestehen.
Bei der Wiederherstellung von mehreren Datenbanken 206 gibt
es möglicherweise
mehrere Sicherungskopien 210. Wird mehr als eine Sicherungskopie 210 benötigt, so
liest das Sicherungskopie-Wiederherstellungsdienstprogramm 302 diese
Sicherungskopien 210 vorzugsweise eher parallel als sequenziell,
um die Lesezeit zu verkürzen.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 umfasst
des Weiteren einen CADS-Manager 304, um die für die Wiederherstellung
erforderlichen CADSs zu lesen. Die CADSs 214 werden ebenso
wie die Sicherungskopien 210 parallel gelesen, um die Lesezeit
zu verkürzen.
Der CADS-Manager 304 liest die CADSs 214 vorzugsweise
parallel, während
die Sicherungskopien 210 von dem Sicherungskopie-Wiederherstellungsdienstprogramm 302 gelesen
werden. Die CADSs 214 werden in den Speicher 18 eingelesen
und bei Bedarf auf die Sicherungskopien 210 angewandt, während die
Sicherungskopien 210 gelesen und wiederhergestellt werden.
-
Die
Fähigkeit,
Sicherungskopien 210 oder CADS 214 parallel zu
lesen, kann von den zur Verfügung
stehenden Hardware-Komponenten
abhängen. Wie
zuvor erwähnt,
kann jede Sicherungskopie 210 oder jede CADS 214 in
einem Speicher, wie zum Beispiel einem Bandlaufwerk, gespeichert
sein. Steht für jede
gelesene Sicherungskopie 210 und für jede gelesene CADS 214 ein
Bandlaufwerk zur Verfügung, so
ist die Lesezeit die Zeitspanne, die zum Lesen der umfangreichsten
Sicherungskopie 210 oder der umfangreichsten CADS 214 benötigt wird.
Stehen weniger Laufwerke zur Verfügung als es Sicherungskopien 210 oder
CADSs 214 gibt, so kann sich die Lesezeit beträchtlich
erhöhen,
da ein teilweise sequenzielles Lesen erforderlich wird.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 umfasst
des Weiteren ein Wiederherstellungssteuermodul 305, das
die Datenbankdateien im Repository 212, die der Wiederherstellungsliste
hinzugefügt
werden sollen, prüft.
Das Wiederherstellungssteuermodul 305 bestimmt die Protokolle 204,
die Sicherungskopien 210 und die CADS 214, die
die zur Wiederherstellung erforderlichen Daten enthalten. Diese
Bestimmung basiert auf Daten im Repository 212. Der Benutzer
hat sicherzustellen, dass die Wiederherstellung nicht gestartet
wird, solange nicht alle Datenbanken 206, die wiederhergestellt
werden, von den Datenbankverwaltungssystemen 202 offline
sind. Datenbanken 206 in der Wiederherstellungsliste, die
aktiven Datenbankverwaltungssystemen 202 zugeordnet sind,
werden nicht wiederhergestellt. Das Wiederherstellungsdienstprogramm 300 kann
den Benutzer einer Datenbank 206, die nicht wiederhergestellt
werden kann, benachrichtigen.
-
In 3 ist
des Weiteren ein CADS-Dienstprogramm 306 dargestellt, das
Aktualisierungen sammelt und die CADS 214 erstellt. Wie
oben erörtert,
liest das CADS-Dienstprogramm 306 Protokolldateien sequenziell
in den Protokollen 204, um eine oder mehrere CADSs zu erstellen.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 umfasst
des Weiteren einen Protokollmanager 308, der die erforderlichen
Protokolldateien der Protokolle 204 liest. Der Protokollmanager 308 erzeugt
einen Wiederherstellungsdatenstrom, der aus einem Satz Protokolldatensätzen besteht,
die für die
Wiederherstellung einer bestimmten Gruppe von Datenbanken 206 erforderlich
sind. Datensätze
im Wiederherstellungsdatenstrom werden in der Reihenfolge ihres
Erstellungszeitpunkts gemischt.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 enthält auch
ein Mischendpunktdienstprogramm 310, das einen Mischendpunkt
in jedem vom Protokollmanager 308 gelesenen Protokoll bestimmt.
Der Mischendpunkt kennzeichnet einen Zeitpunkt in einem unvollständigen Protokoll,
zu dem keine weiteren Protokolldatensätze mit einer wiederhergestellten
Datenbank gemischt werden dürfen sondern
in Reservedatensätze
eingeschrieben werden müssen.
Somit markiert der Mischendpunkt den Punkt, an dem Protokolldatensätze von
Detaildatensätzen
in Reservedatensätze übergehen.
Die Bestimmung des Mischendpunktes ist für die Erfindung von Nutzen,
wie nachfolgend erklärt
wird. Das Mischendpunktdienstprogramm 310 kann dem CADS-Dienstprogramm 306 den
Mischendpunkt liefern, um die Position des Mischendpunktes in einer CADS 214 festzustellen.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 kann einen
Protokolldatensatz-Router 312 einschließen, der die Protokolldatensätze des Wiederherstellungsdatenstroms
verarbeitet und an einen Datenbankaktualisierungsmanager 314 übergibt.
Der Datenbankaktualisierungsmanager 314 aktualisiert Datenbankdateien,
auf die die Protokolldatensätze
verweisen.
-
Das
Datenbank-Wiederherstellungsdienstprogramm 300 umfasst
außerdem
ein Imagekopier-und-Wiederherstellungsdienstprogramm 316, das
der Erstellung der wiederhergestellten Datenbanken 318 dient.
Das Imagekopier-und-Wiederherstellungsdienstprogramm 316 erhält die Sicherungskopie 210 vom
Sicherungskopie-Wiederherstellungsdienstprogramm 302 und
verwendet die Sicherungskopie 210 als Grundlage für die Erstellung
einer oder mehrerer wiederhergestellter Datenbanken 318.
Das Imagekopier-und-Wiederherstellungsdienstprogramm 316 erhält außerdem Dateien
vom CADS-Manager 304. Das Imagekopier-und-Wiederherstellungsdienstprogramm 316 koordiniert
die Anwendung der Dateien aus der CADS 214 in einer geeigneten
sequenziellen Reihenfolge, um eine wiederhergestellte Datenbank 318 zu
erstellen. Nachdem das Imagekopier-und-Wiederherstellungsdienstprogramm 316 die
wiederhergestellten Datenbanken 318 erstellt und Daten
dort eingeschrieben hat, fügt der
Datenbankaktualisierungsmanager 314 die Protokolldateien
an geeigneter Position in die wiederhergestellten Datenbanken 318 ein.
-
In 4 ist
ein Zeitliniendiagramm für
mehrere Protokolle 204 dargestellt und allgemein mit der Ziffer 400 bezeichnet.
Die in 4 dargestellten Protokolle 204 befinden
sich in einer gemeinsamen Umgebung, in der zwei oder mehr Datenbankverwaltungssysteme 202 auf
eine einzige Datenbank 206 zugreifen. Die Protokolle 204 erstrecken
sich über den
Zeitraum bis zu einem Datenbankausfall 401. Jedes Protokoll 204 enthält eine
Reihe von Aktualisierungen 402, die auf der Zeitlinie angezeigt
und vom entsprechenden Datenbankverwaltungssystem 202 durchgeführt werden.
Den Protokollen 204 stehen aufgrund der gemeinsamen Umgebung
nicht alle Protokolldatensätze
zur Verfügung,
deshalb handelt es sich um unvollständige Protokolldateien. Daher
ist es nicht bekannt, ob bestimmte Aktualisierungen 402 abgebrochen
oder festgeschrieben wurden.
-
Der
Mischendpunkt ist mit 404 beziffert und bezeichnet den
Zeitpunkt, der die Detaildatensätze 406,
die gemischt werden können,
von den Reservedatensätzen 408,
die nicht gemischt werden dürfen, trennt.
Wie in 4 dargestellt, handelt es sich bei allen Protokolldatensätzen auf
der linken Seite des Mischendpunktes 404 um Detaildatensätze 406, während es
sich bei allen Protokolldatensätzen
der rechten Seite um Reservedatensätze 408 handelt. Am
Mischendpunkt 404 stoppt der Änderungssammelprozess mit dem
Schreiben der Protokolldatensätze
in Detaildatensätze 406 und
muss danach die Protokolldatensätze
in Reservedatensätze 408 schreiben.
-
Zu
einem bestimmten Zeitpunkt wird ein Änderungssammelprozess 410 ausgeführt, um
eine CADS 214 zu erstellen. Aktualisierungen 402,
die als festgeschrieben bestätigt
wurden, werden in Detaildatensätze 406 in
der CADS 214 geschrieben. Bestimmte Aktualisierungen 402 sind
jedoch nicht als festgeschrieben bestätigt und dürfen nicht mit anderen Datensätzen gemischt
werden. Der Änderungssammelprozess 410 kann
für die
unvollständigen Protokollsätze durchgeführt werden,
aber die nicht bestätigten
Aktualisierungen 402 werden in Reservedatensätze 408 geschrieben
und sind Bestandteile einer unvollständigen CADS 214. Wie
nach dem Stand der Technik bekannt, ist es möglich, Reservedatensätze 408 in
einem nachfolgenden Änderungssammelprozess
zu lesen und sie mit den anderen Datensätzen zu mischen, falls die
relevanten Protokolldatensätze
verfügbar
werden.
-
In 5 ist
eine Folge von Verfahrensschritten 500 dargestellt, um
eine Ausführungsart
des Verfahrens der vorliegenden Erfindung zu veranschaulichen. Vor
dem Start des vorliegenden Verfahrens sind eine oder mehrere Datenbanken 206 ausgefallen.
Das Wiederherstellungsverfahren setzt bei Schritt 502 ein.
Das Starten kann die Betriebsvorbereitung des Datenbank-Wiederherstellungsdienstprogramms
einschließen,
indem zum Beispiel ein separater Adressraum für die Verwaltung von Sicherungsdateien,
CADSs und Protokolldateien angelegt wird, interne Systemprüfungen durchgeführt werden, Speicher
und Vorrichtungen benötigter
Adressen, etc., initialisiert werden. Befehle zur Wiederherstellungsimplementierung
können
vom in 3 dargestellten Datenbank-Wiederherstellungsdienstprogramm 300 ausgeführt werden.
Nachdem der Initiierungsschritt 502 gestartet wurde, werden
die restlichen Verfahrensschritte 500 automatisch ohne
Eingreifen des Benutzers durchgeführt, wobei das Laden von Sicherungskopien 210 und
CADSs 214 in die Eingabevorrichtungen 26, wie
unten erläutert, eine
Ausnahme darstellt.
-
In
Schritt 504 erstellt das Wiederherstellungsdienstprogramm 300 eine
Wiederherstellungsliste, die eine Sammlung von wiederherzustellenden Datenbanken 206 darstellt.
In einer Ausführungsart wird
die Wiederherstellungsliste bei Erstellung in Schritt 504 einem
logischen Terminal, welches den Wiederherstellungsbefehl ausgab,
zugeordnet.
-
Die
Wiederherstellung wird mit Schritt 506 fortgeführt, wenn
das Wiederherstellungsdienstprogramm 300 einen Befehl zum
Starten der Wiederherstellung erhält. Das Wiederherstellungsdienstprogramm 300 führt eine Überprüfung durch
um festzustellen, ob die Wiederherstellung gerade vollzogen wird
oder ob eine benötigte
Wiederherstellungsliste nicht auffindbar ist. Ist Letzteres der
Fall, so wird eine Fehlermeldung ausgegeben und die Wiederherstellung
abgebrochen. Ansonsten wird die Wiederherstellung fortgeführt. Das
Wiederherstellungsdienstprogramm 300 wertet die Wiederherstellungsliste aus,
indem es sicherstellt, dass sich jede Datenbank 206 in
einem Status befindet, der eine Wiederherstellung zulässt, und
sie bestimmt auch die für
die Wiederherstellung dieser ausgewerteten Einträge erforderlichen Betriebsmittel.
-
In
Schritt 508 werden die erforderlichen Sicherungskopien 210 vom
Sicherungskopie-Wiederherstellungsdienstprogramm 302 parallel
gelesen. Der CADS-Manager 304 liest gleichzeitig die erforderlichen
CADSs 214 parallel. Das parallele Lesen der Sicherungskopien 210 und
der CADSs 214 hängt von
der Anzahl der zur Verfügung
stehenden Eingabevorrichtungen 26, wie zum Beispiel Bandlaufwerke,
ab. In einer Ausführungsart
kann der Benutzer die Anzahl der zu benutzenden Eingabevorrichtungen 26 angeben.
-
Bei
der Wiederherstellung von mehreren Datenbanken 210 mit
Datensätzen
in einer einzigen CADS 214 wird die CADS 214 nur
einmal in den Speicher 18 eingelesen. Datensätze, die
zur Wiederherstellung einer bestimmten Datenbank 210 erforderlich
sind, werden dann aus dem Speicher 18 abgerufen. Damit
erübrigt
sich der Schritt des wiederholten Lesens einer einzigen CADS 214 für jede Datenbank 210.
-
In
einer gemeinsamen Umgebung ist die CADS 214 unvollständig und
enthält
Reservedatensätze 408,
die nicht mischbar sind. Um die Wiederherstellung zu beschleunigen,
liest der CADS-Manager 304 nur die Detaildatensätze 406 und
ignoriert die Reservedatensätze 408.
So ist für
die Wiederherstellung die Ausführung
eines Änderungssammelprozesses
zur Vervollständigung
der CADS überflüssig, da
lediglich die Detaildatensätze 406 gelesen
werden. Die Detaildatensätze 404 stellen
die Aktualisierungen 402 bis zum Mischendpunkt 404 dar
und werden in den Speicher 18 eingelesen.
-
In
Schritt 510 wird die Sicherungskopie 210 vom Imagekopier-und-Wiederherstellungsdienstprogramm 316 in
die entsprechende wiederhergestellte Datenbank 318 geschrieben.
Auf diese Art dient die Sicherungskopie 210 als Ausgangspunkt
für die
Erstellung der wiederhergestellten Datenbank 318. Während die
Sicherungskopie 210 vom Imagekopier-und-Wiederherstellungsdienstprogramm 316 geschrieben
wird, bestimmt das Imagekopier-und-Wiederherstellungsdienstprogramm 316 die Position
des nächsten
Detaildatensatzes 404 der CADS 214 in der wiederhergestellten
Datenbank 318. Jeder Detaildatensatz 404 der CADS 214 besitzt eine
Identifikation für
die sequenzielle Anordnung in der wiederhergestellten Datenbank 318.
Das Imagekopier-und-Wiederherstellungsdienstprogramm 316 schreibt
die Sicherungskopie 210 sequenziell in die wiederhergestellte
Datenbank 318, bis der nächste Detaildatensatz 404 aus
der CADS 214 benötigt
wird. Nach dem Mischen des Detaildatensatzes 404 in die wiederhergestellte
Datenbank 318 bestimmt das Imagekopier-und-Wiederherstellungsdienstprogramm 316 die
Position des nächsten
Detaildatensatzes 404.
-
In
Schritt 512 fragt das Imagekopier-und-Wiederherstellungsdienstprogramm 316 den
CADS-Manager 304 ab, ob ein bestimmter, für die wiederhergestellte
Datenbank 318 erforderlicher Detaildatensatz 404 schon
gelesen wurde. Während Detaildatensätze 406 vom
CADS-Manager 304 in den Speicher 18 eingelesen
werden, werden die Datensätze 404 auf
Anforderung an das Imagekopier-und-Wiederherstellungsdienstprogramm 316 weitergeleitet.
Tritt eine Anforderungsverzögerung bezüglich der
Detaildatensätze 406 auf,
so können einige
oder alle Detaildatensätze 406 zur
Langzeitspeicherung im virtuellen Speicher 25 gespeichert werden.
-
In
Schritt 516 wird der angeforderte Detaildatensatz 404,
wenn er gelesen wurde, an das Imagekopier-und-Wiederherstellungsdienstprogramm 316 gesendet
und mit der wiederhergestellten Datenbank 318 in zeitlicher
Reihenfolge gemischt.
-
In
Schritt 514 wird, wenn der angeforderte Detaildatensatz 404 noch
nicht gelesen wurde, die Abfrage im Speicher 18 gespeichert.
Wenn der CADS-Manager 304 den Detaildatensatz 404 liest, wird
die Abfrage aufgezeichnet und die Detaildatensätze 406 werden an
das Imagekopier-und-Wiederherstellungsdienstprogramm 316 gesendet,
um mit der wiederhergestellten Datenbank 318 gemischt zu werden.
-
Es
sollte zur Kenntnis genommen werden, dass – obgleich das Verfahren 500 in
Bezug auf das Flussdiagramm der 5 linear
dargestellt wurde – die
Schritte 508, 510, 512, 514 und
516 gleichzeitig ausgeführt
werden können.
Somit können
die Detaildatensätze 406,
während
die Sicherungskopie 210 in die wiederhergestellte Datenbank 318 geschrieben wird,
gelesen und mit der wiederhergestellten Datenbank gemischt werden.
-
In
Schritt 518 wird das Mischen der Sicherungskopie 210 und
der CADS 214 mit der wiederhergestellten Datenbank 318 abgeschlossen.
Der Protokollmanager 308 liest ein oder mehrere Protokolle 204 in
den Speicher 18 ein und das Mischendpunktdienstprogramm 310 bestimmt
die Position des Mischendpunktes 404 in den Protokollen 204.
In einer gemeinsamen Umgebung wird wahrscheinlich mehr als ein Protokoll 204 zu
lesen sein. Die Protokolle 204 werden parallel gelesen,
um die Lesezeit zu verkürzen.
Wiederum kann das parallele Lesen der Protokolle 204 von
der Anzahl der zur Verfügung
stehenden Eingabevorrichtungen 26 abhängen. Somit kann die Protokoll-Lesezeit genauso
lang sein, wie die Zeit, die zum Lesen des längsten Protokolls 204 erforderlich
ist.
-
Der
Protokollmanager 308 leitet die auf den Mischendpunkt 404 folgenden
Aktualisierungen 402 ab und diese Aktualisierungen 402 werden
in den Reservedatensätzen 408 widergespiegelt.
Der Protokollmanager 308 kann bestimmen, welche Aktualisierungen 402 in
den Reservedatensätzen 408,
basierend auf dem Lesen der Protokolle 204, festgeschrieben
wurden. Die Aktualisierungen 402 werden in einem Wiederherstellungsdatenstrom
an den Router 312 und anschließend an den Datenbankaktualisierungsmanager 314 gesendet.
-
In
Schritt 520 wird der Datenbankaktualisierungsmanager 314 vom
Protokolldatensatz-Router 312 beim Mischen der Aktualisierungen 402 in
zeitlicher Reihenfolge mit der wiederhergestellten Datenbank 318 gesteuert.
Das Datenbank-Wiederherstellungsdienstprogramm 300 aktiviert
den Betrieb des Datenbankaktualisierungsmanagers 314 erst,
nachdem das Imagekopier-und-Wiederherstellungsdienstprogramm 316 mit
dem Schreiben in die wiederhergestellte Datenbank 318 fertig
ist. Jede nach dem Mischendpunkt 404 festgeschriebene Aktualisierung
wird identifiziert und mit der wiederhergestellten Datenbank 318 gemischt.
Aktualisierungen 402 aus dem Reservedatensatz 408 können gleichzeitig während des
Lesens der Protokolle 204 mit der wiederhergestellten Datenbank 318 gemischt
werden, damit der Wiederherstellungsprozess weiter beschleunigt
wird. Daher werden Aktualisierungen 402, sobald sie als
festgeschrieben bestätigt
wurden, sofort mit der wiederhergestellten Datenbank 318 gemischt,
während
nachfolgende Aktualisierungen 402 aus den Protokollen 204 gelesen
werden. Somit stellt die wiederhergestellte Datenbank 318 eine
genaue Entsprechung der Datenbank 206 zum Zeitpunkt kurz
vor dem Ausfall dar.
-
Mit
Schritt 522 endet das Verfahren 500.
-
Ein
wesentlicher Vorteil der vorliegenden Erfindung besteht darin, dass
verschiedene Prozesse parallel ausgeführt werden. Sicherungskopien 210 und
CADSs 214 werden zur gleichzeitigen Verarbeitung parallel
in den Speicher eingelesen. Daher können die Detaildatensätze 406 sofort
und gleichzeitig mit dem Einschreiben der Sicherungskopie 210 in
die wiederhergestellte Datenbank 318 verfügbar sein. Sollten
Detaildatensätze 406 nicht
sofort erforderlich sein, können
sie in einen Langzeitspeicher verschoben werden. Außerdem wird
jede CADS 214, die zur Datenbankwiederherstellung erforderlich
ist, einmal in den Speicher eingelesen, unabhängig davon, wie viele Datenbanken 206 Datensätze in der
CADS 214 aufweisen. Protokolle 204 werden ebenfalls
eher parallel als sequenziell gelesen, um die Lesezeit bei den Protokollen
zu reduzieren. Daher beinhaltet die abgelaufene Zeit bei der Wiederherstellung
einer oder mehrerer Datenbanken Folgendes:
die Lesezeit für die größte CADS 214 oder
für die größte Sicherungskopie 210;
zuzüglich der
Einschreibezeit in die größte wiederhergestellte
Datenbank 318;
abzüglich
der Überlappungszeit
für das
Lesen der CADSs 214 und der Sicherungskopien 210 bei gleichzeitigem
Einschreiben in die größte wiederhergestellte
Datenbank 318;
zuzüglich
der Lesezeit für
das größte Protokoll;
zuzüglich der
Zeit für
das Mischen der Aktualisierungen 402 aus dem Protokoll 204 mit
den wiederhergestellten Datenbanken 318; und
abzüglich der Überlappungszeit
für das
Lesen der Protokolle 204 und für das Mischen der Aktualisierungen 402.
-
Ein
weiterer wesentlicher Vorteil der Erfindung besteht darin, dass
die Datenbankwiederherstellung direkt anhand unvollständiger CADSs 214 durchgeführt wird.
Indem die Reservedatensätze
in der CADS 214 ignoriert werden und nachfolgende Lesevorgänge der
Protokolle 204 als Basis dienen, werden alle festgeschriebenen
Aktualisierungen 402 mit der wiederhergestellten Datenbank 318 gemischt.
Die zeitintensive Notwendigkeit, einen Änderungssammelprozess durchzuführen, um
jede unvollständige
CADS zu vervollständigen,
wird dadurch überflüssig. Somit
kann die Wiederherstellung einer Datenbank 206 in einer
gemeinsamen Umgebung erheblich beschleunigt werden.
-
Die
vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden,
ohne von ihrem Sinn oder ihren wesentlichen Eigenschaften abzuweichen.
Die beschriebenen Ausführungsarten sind
in jeder Hinsicht ausschließlich
als Veranschaulichungen und nicht als Einschränkungen aufzufassen. Der Geltungsbereich
der Erfindung wird daher vielmehr durch die angefügten Ansprüche als
durch die vorangegangene Beschreibung gekennzeichnet. Alle Änderungen,
die sich im Rahmen des Sinns und der Gleichwertigkeit der Ansprüche bewegen,
werden von deren Geltungsbereich erfasst.