[go: up one dir, main page]

DE69621841T2 - Rechnersicherungssystem mit offenen Dateien - Google Patents

Rechnersicherungssystem mit offenen Dateien

Info

Publication number
DE69621841T2
DE69621841T2 DE69621841T DE69621841T DE69621841T2 DE 69621841 T2 DE69621841 T2 DE 69621841T2 DE 69621841 T DE69621841 T DE 69621841T DE 69621841 T DE69621841 T DE 69621841T DE 69621841 T2 DE69621841 T2 DE 69621841T2
Authority
DE
Germany
Prior art keywords
file
backup
data
read
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69621841T
Other languages
English (en)
Other versions
DE69621841D1 (de
Inventor
Peter Bryan Malcom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cheyenne Advanced Technology Ltd
Original Assignee
Cheyenne Advanced Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB9505939.0A external-priority patent/GB9505939D0/en
Application filed by Cheyenne Advanced Technology Ltd filed Critical Cheyenne Advanced Technology Ltd
Publication of DE69621841D1 publication Critical patent/DE69621841D1/de
Application granted granted Critical
Publication of DE69621841T2 publication Critical patent/DE69621841T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)
  • Control And Other Processes For Unpacking Of Materials (AREA)
  • Shovels (AREA)

Description

    Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft ein Betriebsverfahren für ein Computersystem und im besonderen ein Verfahren zum Bereitstellen von Sicherungskopien von in einer Speichereinrichtung gespeicherten Daten zum Schutz gegen die Möglichkeit, daß die Speichereinrichtung beschädigt wird oder die Daten vefälscht werden, verloren gehen oder von einem Computervirus befallen werden. Die Erfindung befaßt sich besonders mit der Bereitstellung von Sicherungen für Personalcomputer (PC).
  • In einem einfachen Ein-Benutzer-Computersystem, das eine Speichereinrichtung wie eine Festplatte aufweist, hat konventionell zu jedem beliebigen Zeitpunkt jeweils nur ein Anwendungsprogramm Zugang zur Speichereinrichtung. Die Aufgabe der Sicherung von Daten, die von der Speichereinrichtung gespeichert werden, wird von einem Anwendungsprogramm durchgeführt, das während der Durchführung des Sicherungsvorgangs die ausschließliche Nutzung der Speichereinrichtung innehat, da in einer derartigen Umgebung keine andere Applikation laufen kann, bis die Sicherungsapplikation beendet wird.
  • Aufgrund der Einführung von Multi-Tasking-Umgebungen, in denen mehrere Applikationen gleichzeitig laufen können, und von Netzsystemen, mit denen mehrere Benutzer die gleichen Ressourcen gemeinsam nutzen können, kann eine Situation entstehen, in der mehr als eine Applikation gleichzeitigen Zugang zur gleichen Speichereinrichtung hat. Wenn diese Situation entsteht, besteht die Möglichkeit eines Konflikts zwischen den Applikationen. Zum Beispiel könnte eine Applikation eine Datei ändern oder löschen, die zur Zeit von einer anderen Applikation genutzt wird. Dies würde zu Verwirrung und möglicherweise zur Beschädigung der Speichereinrichtung und folglich zu Datenverlust führen.
  • In Betriebssysteme wurden als "Dateischutz" und "Satzschutz" bekannte Verfahren eingeführt, um zu verhindern, daß im Fall des Dateischutzes mehr als eine Applikation in eine Datei schreibt, bzw. im Fall des Satzschutzes zwei Applikationen den gleichen Bereich einer bestimmten Datei ändern. Diese Verfahren sind für die meisten Applikationen hochentwickelt genug, besonders wenn jede Applikation an gemeinsam genutzten Dateien nur relativ geringfügige Änderungen vornimmt und deshalb andere Applikationen, die Zugang zu einer gesperrten Datei oder einem gesperrten Satz wünschen, nicht wesentlich verlangsamt. Eine Applikation zum periodischen Sichern von Daten in einem Computersystem, in dem die Speichereinrichtungen gemeinsam genutzt werden, ist aber ein besonderer Fall.
  • Die kleinste Dateneinheit, die gesichert werden kann, ist eine einzelne Datei, da weder die Sicherungsapplikation noch das Betriebssystem den inneren Aufbau einer Datei kennt, weil sie jedwedem Anwendungsprogramm zugeordnet werden könnte. Außerdem muß die Sicherungskopie der Datei ein genaues Abbild des Originals an einem bestimmten Zeitpunkt sein. Das Kopieren einer Datei ist aber kein sofortiger Prozeß, und die zum Kopieren benötigte Zeit hängt von der Größe der Datei und der Geschwindigkeit des Kopiervorgangs ab. Dies verursacht ein Problem, wenn die Sicherungsapplikation nicht sicher sein kann, daß keine andere Applikation die Datei während des Kopierprozesses ändern kann.
  • Zum Kopieren einer Datei bestimmt eine
  • Sicherungsapplikation einen Bereich des Direktzugriffsspeichers (RAM) als Transferpufferspeicher und fährt dann mit alternierendem Einlesen von Blöcken der Quellendatei in den Pufferspeicher und dann Herausschreiben des Pufferspeicherinhalts in eine sekundäre Speichereinrichtung weiter. Außer wenn die Datei sehr klein ist, wird der Transferpufferspeicher mehrmals gefüllt und der Kopiervorgang erfordert mehrere Lese- und Schreibvorgänge, um eine vollständige Kopie der Datei anzufertigen.
  • Das potentielle Problem, das dadurch verursacht wird, daß die Datei während des Kopiervorgangs geändert werden kann, kann anhand des Beispiels einer Datei veranschaulicht werden, die als eine Serie von 10 Blöcken kopiert wird. Wenn die Datei durch eine Transaktion modifiziert würde, die Änderungen an der Datei erforderte, die den Blöcken 3 und 8 entsprächen, nachdem Blöcke 1 bis 5 bereits kopiert wurden, würde der Kopiervorgang folglich die Änderung an Block 8 kopieren, würde aber nicht die Änderung an Block 3 kopieren, da dieser Block bereits vor der Transaktion kopiert wurde. Die Sicherungskopie enthält daher nur eine Teiltransaktion, wodurch die Sicherungskopie vielleicht völlig unbrauchbar wird, da die Applikation, die sie "besitzt", die Datei möglicherweise als verfälscht betrachten wird.
  • Unser US-Patent Nr. 5,086,502 beschreibt ein Verfahren zum Sichern jedes Schreibvorgangs, während er abläuft, indem es den Schreibvorgang in eine sekundäre Speichereinrichtung dupliziert. Zusätzlich zu diesem Verfahren gibt es noch zwei weitere Methoden zum Sichern von Dateien in einem Computersystem mit gemeinsam genutzten Speichereinrichtungen:
  • i) Sperren der Datei während der Sicherung. Dies hindert andere Benutzer daran, die Datei zu ändern, indem ihnen der Schreibzugriff verweigert wird. Wenn ein anderer Benutzer bereits Schreibzugriff hat, muß die Sicherungsapplikation entweder diese Datei überspringen oder warten, bis sie ausschließlichen Schreibzugriff erhalten kann.
  • ii) Erfassen von Änderungen an der Datei. Nach dem Kopieren der Datei kann die Sicherungsapplikation das Betriebssystem benutzen, um nachzuprüfen, ob während des Kopiervorgangs irgenwelche Änderungen vorgenommen wurden. Wenn Änderungen durchgeführt wurden, dann muß die Kopie wiederholt oder diese Datei übersprungen werden.
  • Keines der letzteren beiden Verfahren bietet eine angemessene Lösung, da viele Dateien (insbesondere Datenbankdateien) dauernd in Gebrauch sind. Darüber hinaus erfordern die zwei Verfahren, daß Benutzer effektiv ausgesperrt werden, während die Sicherung stattfindet. Außerdem sind nur wenige Kombinationen von sekundären Speichereinrichtungen und Betriebssystemen zu anhaltenden Transfergeschwindigkeiten von mehr als 15 Megabyte (Mb) pro Minute fähig, und die zum Kopieren einer großen Datei benötigte Zeit ist daher beträchtlich.
  • Einige Anwendungsprogramme bewältigen das Problem zwar durch Bereitstellen von Verfahren zum sicheren Sichern ihrer eigenen Dateien in einer gemeinsam genutzten Umgebung, aber die Prozedur ist jeweils verschieden. Um die gesamte Speichereinrichtung zu sichern, muß die Sicherungsapplikation deshalb wissen, wie jede verschiedene eingebaute Prozedur funktioniert, oder sie muß auf manuellen Eingriff an einem geeigneten Punkt angewiesen sein.
  • Weil eine Sicherungsapplikation eine ganze Datei sichern muß und weil diese während des Sicherungsprozesses nicht von einem anderen Anwendungsprogramm geändert werden darf, führt die Verwendung von Sicherungsverfahren vom Stand der Technik somit in ein Computersystem mit gemeinsam genutzten Speichereinrichtungen Verzögerungen ein. Dies trifft besonders während des Sicherns großer Dateien zu.
  • Das Walls erteilte US-Patent Nr. 5 163 148 beschreibt ein Sicherungssystem, bei dem die Datei, bevor die Sicherung einer Datei beginnt, in einen konsistenten Zustand versetzt wird; z. B. wenn in Verbindung mit einer Transaktion mehrere Vorgänge erforderlich sind, dann werden alle diese Vorgänge abgeschlossen. Wenn ein Teil einer Datei, die gesichert wird, aktualisiert werden soll, dann wird dieser Teil der Originaldatei zu einem separaten Teil der Festplatte kopiert, bevor die Aktualisierung stattfindet. Das Sicherungsprogramm sichert die Datei, indem es jene Teile, die aktualisiert wurde, durch die Originalteile ersetzt, die an anderer Stelle auf der Festplatte kopiert und aufbewahrt wurden. Die Plattenspeicherbereichsabbildung, die normalerweise eine Liste der von dieser Datei belegten Spuren und Sektoren auf der Festplatte trägt, wird erweitert, so daß sie eine Konkordanz beinhaltet, die die Spur- und Sektorspeicherstellen der kopierten Originaldateiteile mit den Spur- und Sektorspeicherstellen der aktualisierten Teile, die die Bereiche einnehmen, aus denen sie kopiert wurden, in Bezug setzt.
  • Unsere internationale Patentanmeldung Nr. PCT/GB94/01581, die am 20. Juli 1995 unter der Auslegeschriftnummer WO95/19599 veröffentlicht wurde, beschreibt ein Betriebsverfahren für einen Computer mit einer von mehreren Anwendungsprogrammen gemeinsam genutzten Speichervorrichtung, das auch einen Sicherungsprozeß beinhaltet, der einen Prozeß zum Führen einer Aufzeichnung der Änderungen aufweist, die an den Daten in der Speichervorrichtung vorgenommen werden, während der Sicherungsprozeß ausgeführt wird. Die Aufzeichnung wird verwendet, um sicherzustellen, daß sich die vom Sicherungsprozeß gesehenen Daten nicht ändern, während er ausgeführt wird, während andere Prozesse die Speichervorrichtung weiterhin normal aktualisieren können, wodurch mit Dateisperrmethoden assoziierte Verzögerungen vermieden werden. Die zusätzlichen Vorgänge werden auf der Ebene der Betriebssystemschnittstelle des Mikrocomputers so ausgeführt, daß die normale Benutzung des Computers davon nicht beeinflußt wird. In diesem Verfahren dient ein Sicherungsvorgang zum Ausgeben eines Startsignals und eines Stoppsignals und zum Durchführen wenigstens eines Sicherungslesevorgangs zum Lesen von Originaldaten aus der Speichereinrichtung, z. B. der Festplatte. Die Zentraleinheit (CPU) führt wenigstens einen normalen Schreibvorgang zum periodischen Schreiben von Daten in einen Primärbereich der Speichereinrichtung und wenigstens einen normalen Lesevorgang zum Lesen von Daten aus der Speichereinrichtung durch.
  • Nach Empfangen des genannten Startsignals wird ein Abfangvorgang zum Abfangen des Schreibvorgangs und zum Schreiben von Daten in einen sekundären Speicherbereich der Speichereinrichtung durchgeführt, um die Originaldaten zu erhalten, die andernfalls durch den genannten Schreibvorgang überschrieben würden. Es wird eine Aufzeichnung der Dateiteile geführt, die in den sekundären Bereich geschrieben wurden, und beim Durchführen eines der Sicherungs- und genannten normalen Lesevorgänge wird die Aufzeichnung abgefragt, um Daten aus entweder dem primären oder dem sekundären Bereich, entsprechend der Aufzeichnung, zu lesen. Auf diese Weise wird der Sicherungsprozeß mit erhaltenen Originaldaten in dem Zustand versehen, in dem sie unmittelbar vor Ausgabe des Startsignals waren. In diesem Fall definiert die Aufzeichnung aber die Dateiteile mit Bezug auf Dateiaufzeichnungen und nicht mit Bezug auf Spur- und Sektorspeicherstellen auf der Platte. Das vermeidet Probleme, die entstehen können, wenn die Aufzeichnung mit Bezug auf die Plattenspeicherstelle, d. h. Spur und Sektor, gehalten wird, und bietet gewisse Vorteile.
  • Die Aufzeichnung beinhaltet vorzugsweise einen Deltabereich, in dem die ersten Daten gespeichert werden, und eine Abbildungsreferenz zwischen der tatsächlichen Speicherstelle der ersten Daten und ihrer Soll-Speicherstelle. Alternativ können die zweiten Daten im Deltabereich aufgezeichnet werden und andere Applikationen können weiterhin in die Soll-Speicherstelle auf der Speichervorrichtung schreiben.
  • Der Deltabereich ist vorzugsweise ein anderer Bereich der gleichen Speichervorrichtung, z. B. Festplatte. Die erforderlichen zusätzlichen Vorgänge werden auf einer Betriebssystemschnittstellenebene des Computersystems vorteilhaft gespeichert und durchgeführt. Wenn die Software auf der Betriebssystemebene gespeichert wird, kann sie für den Benutzer transparent gemacht werden, so daß sie die Applikationssoftware nicht beeinträchtigt.
  • Diese Sicherungsaufzeichnung kann in verschiedenen Speichereinrichtungen gespeichert werden, z. B. einem Bandlaufwerk, einer Bildplatte oder in einem anderen Bereich des Grundspeichermediums. Wenn die Sicherung durchgeführt worden ist, kann sie auf herkömmliche Weise wieder umgespeichert werden.
  • Europäische Patentanmeldung EP-A-0 566 968 erläutert ein System, das gleichzeitigen Zugriff während des Sicherungskopierens von Daten ermöglicht, indem es eine in einem Speicher gespeicherte Nebendatei macht, die Daten enthält, die möglicherweise geändert wurden, um das Kopieren der ungeänderten Daten zu ermöglichen.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung sieht eine Verbesserung vor, die auf die vorangehenden Verfahren anwendbar ist.
  • Ein potentielles Problem mit dem Verfahren der früheren Anmeldung ist, dass es den gewünschten Sicherungsvorgang an einer bestimmten Datei eventuell nicht vornehmen kann, weil diese Datei für eine weitere Applikation offen ist, so daß der Zugriff auf die Datei durch den Sicherungsprozess vom Betriebssystem verweigert wird.
  • Erfindungsgemäß ist ein Verfahren und eine Vorrichtung wie in den anhängigen unabhängigen Ansprüchen 1 bzw. 3 dargelegt vorgesehen.
  • Die Erfindung wird unten unter Bezugnahme auf die Zeichnungen beispielhaft erläutert.
  • Kurze Erläuterung der Zeichnungen
  • Dabei zeigt:
  • Fig. 1 ein Blockdiagramm eines Personalcomputers und eines Magnetbandkassetten-Laufwerks,
  • Fig. 2A und Fig. 2B Diagramme, die ein Systemspeicherabbild auf der Betriebssystemebene eines konventionellen Personalcomputers bzw. eines Computers, der zum Betrieb gemäß dem erfindungsgemäßen Verfahren geändert wurde, darstellen,
  • Fig. 3 ein Ablaufdiagramm eines Verfahren zum Aufzeichnen von Daten in einem Sicherungsvorgang,
  • Fig. 4 ein Ablaufdiagramm einer zweiten Ausgestaltung des Verfahrens von Fig. 3, und
  • Fig. 5 ein Ablaufdiagramm, das eine Verbesserung an den Ausgestaltungen darstellt, die unter Bezugnahme auf die Fig. 3 und 4 beschrieben werden.
  • Erläuterung der bevorzugten Ausgestaltung der Erfindung
  • Ein Personalcomputer 10, Bezug nehmend auf Fig. 1 der Zeichnungen, umfaßt typischenfalls eine Zentraleinheit 12, einen Direktzugriffsspeicher 14 und eine nichtflüchtige Speichervorrichtung in der Form eines Festplattenlaufwerks 16. In diesem Beispiel ist zum Zweck des Bereitstellens einer Sicherungsspeichereinrichtung eine Magnetbandeinheit 18 mit dem Computer 10 verbunden.
  • Ein Teil einer Sicherungsprogrammapplikation ist als ein Aufzeichnungsprozeß gestaltet, der die Aufgabe hat, normale Lese- und Schreibvorgänge vom bzw. zum Laufwerk 16 abzufangen, um den Datenfluß zwischen dem Laufwerk 16 und den anderen Teilen des Computers 10 zu steuern.
  • Bevor begonnen wird, eine Sicherungskopie einer Datei herzustellen, wird der Aufzeichnungsprozeß von der Sicherungsapplikation zum Umleiten aller Festplattenschreibtätigkeiten zu einem anderen Bereich der Festplatte 16 aktiviert, der als "Delta"-Bereich bekannt ist. Es wird eine Delta-Abbildungstabelle von allen Festplattenschreibvorgängen, die zum Deltabereich umgeleitet wurden, geführt. Diese Tabelle unterhält eine Abbildung zwischen dem beabsichtigten Ziel der mit jedem Festplattenschreibvorgang assoziierten Daten auf der Festplatte 16 und ihrer momentanen Speicherposition im Deltabereich. Wenn ein nachfolgender Vorgang zum Schreiben in einen Bereich erfolgt, der bereits der Gegenstand einer Eintragung in die Tabelle ist, dürfen die alten Daten im Deltabereich mit den neuen Daten überschrieben werden. Auf diese Weise ändern sich die Daten auf dem Hauptteil der Festplatte nicht, während eine Sicherungskopie hergestellt wird, da alle Änderungen zum Deltabereich umgeleitet werden.
  • Wenn ein Festplattenlesevorgang von der Sicherungsapplikation angefordert wird, wird er unverändert durchgelassen, so daß die zur Sicherungsapplikation zurückgeführten Daten vom Originaldatenbereich auf dem Hauptteil der Festplatte kommen. Wenn aber ein Festplattenlesevorgang von einer anderen Applikation angefordert wird, hat der Aufzeichnungsprozeß zuerst die Aufgabe, die Tabelle zu prüfen, um zu sehen, ob ein Festplattenschreibvorgang in diesen Bereich stattgefunden hat, seit der Prozeß begann, Schreibvorgänge abzufangen, und wenn dies der Fall ist, wird der Lesevorgang zur entsprechenden Position im Deltabereich umgeleitet. Wenn kein Schreibvorgang stattgefunden hat, d. h. dieses Datenstück seit Beginn des Schreibvorgangabfangens nicht geändert wurde, dann wird der Lesevorgang ungeändert durchgelassen.
  • Auf diese Weise werden Änderungen an auf der Festplatte 16 gespeicherten Daten von allen Applikationen außer der Sicherungsapplikation normal gesehen. Die Sicherungsapplikation sieht die Daten, die sich nicht ändern, bis eine Anweisung erteilt wird, um das Abfangen von Lese- und Schreibvorgängen durch den Aufzeichnungsprozeß anzuhalten.
  • Wenn der Sicherungskopiervorgang beendet ist, wird der Aufzeichnungsprozeß aktiviert, um den Computer wieder auf normalen Betrieb zu schalten. Diese Umspeicherphase wird durch Anwenden der im Deltabereich gespeicherten Änderungen auf die entsprechenden Originaldatenbereiche im Hauptteil der Festplatte 16 mit Hilfe der in der Tabelle gespeicherten Abbildungen erreicht. Während die Deltaänderungen angewendet werden, werden Festplattenschreibvorgänge wie oben erläutert weiterhin abgefangen. Wenn es keine weiteren Schreibvorgänge mehr gibt, die noch nicht auf den Originaldatenbereich angewendet worden sind, wird das Abfangen von Schreibvorgängen abgebrochen und das System funktioniert konventionell.
  • Als eine weitere Verbesserung kann die Software, wenn eine Aufzeichnung darüber geführt wird, wie weit der Sicherungskopierprozeß vorangeschritten ist, Schreibvorgänge zum Hauptteil der Festplatte 16 ungeändert passieren lassen, nachdem dieser Teil der Festplatte gesichert worden ist, da es nichts mehr ausmacht, wenn sich die Daten ändern. Dadurch wird die Größe der Delta-Abbildungstabelle verkleinert. Wenn der Bereich des Hauptteils der Festplatte, auf den dieser Vorgang gerichtet wird, bereits Gegenstand einer Eintragung in die Abbildungstabelle war, kann diese Eintragung dann auch einfach gelöscht werden, wodurch die in der Umspeicherphase benötigte Zeit verringert wird.
  • Die Erfindung ist besonders auf IBM-kompatible Personalcomputer anwendbar, d. h. die Mehrzahl von Personalcomputern, die Prozessorchip-Typennummern 8086, 8088, 80286, 80386, 80486 und von Intel gefertigte Pentium- und ähnliche Mikroprozessor-Systeme verwenden. In derartigen Computern ruft ein Programm, wenn es auf eine Datei zugreifen will, immer eine Standardroutine auf, die Daten auf die Festplatte schreibt. Diese Routine, die im Fall des DOS- Betriebssystems als Interrupt 21 hex (INT 21 h) bekannt ist, ist ein integrierter Bestandteil des Betriebssystems. Die von der Routine durchgeführte Operation, als Interrupt Handler Routine bekannt, hängt von den Parametern ab, die der Routine beim Einsprung zugeführt werden. Diese Routine wird in Fig. 2A als Teil des Betriebssystem in einer Systemspeicherabbildung bildend gezeigt, wobei der INT 21 h-Einsprungpunkt mit einem Pfeil angedeutet wird. Zum Durchführen des vorliegenden Verfahrens in einer bevorzugten Form wird auf der Ebene der Betriebssystemschnittstelle ein zusätzlicher Programmcode hinzugefügt, wie in Fig. 2B gezeigt. In der Praxis kann dieser in einer DOS-Umgebung mit Hilfe der CONFigur SYS-Datei als ein Gerätetreiber in den Computer geladen werden.
  • Die hinzugefügte Software bewirkt, daß eine Anweisung zum Schreiben von Daten durch einen alternativen Satz Anweisungen ersetzt wird. Eine ähnliche Methode kann zum Abfangen einer Anweisung zum Lesen von Daten von der Festplatte und zum Ersetzen auch dieser durch einen alternativen Satz Anweisungen verwendet werden.
  • Der vom alternativen Anweisungssatz bereitgestellte relevante Ablauf wird im Ablaufplan von Fig. 3 gezeigt. Bei Erhalt eines 21 h-Aufrufs prüft das Programm zuerst, ob der Aufruf ein Schreibaufruf ist. Wenn ja, prüft das Programm in Schritt 20 nach, ob es Schreibaufrufe abfangen soll. Wenn nein, werden Daten in den Originaldatenbereich 24 geschrieben (Schritt 22).
  • Wenn Schreibaufrufe abgefangen werden, dann prüft das Programm die Delta-Abbildungstabelle (Schritt 26), um festzustellen, ob zuvor ein Schreibvorgang in diesen Bereich der Originaldatei 24, als spezifizierte Datensätze oder -teile in der Datei definiert, stattgefunden hat. Wenn (Schritt 28) zuvor ein Schreibvorgang stattfand, dann wird der Teil des Deltabereichs 30, der zuvor auf diesen Teil der Originaldatei 24 in der Delta-Abbildungstabelle bezogen wurde, mit den neuen Daten überschrieben (Schritt 32).
  • Wenn Schreibaufrufe abgefangen werden, aber zuvor kein Schreibvorgang zu diesem Teil der Originaldatei 24 durchgeführt wurde, dann wird der Schreibvorgang zur Tabelle hinzugefügt und diesem Datenstück wird ein neuer Bereich des Deltabereichs zugeordnet (Schritt 34). Die Daten werden dann in den neuen Deltabereich geschrieben (Schritt 36).
  • Wenn der Aufruf ein Leseaufruf ist, prüft das Programm in Schritt 38, ob es Leseaufrufe abfangen soll. Ist dies nicht der Fall, dann werden Daten aus der ursprünglichen Datei 24 (Schritt 40) gelesen.
  • Wenn das Programm Leseaufrufe abfängt, dann prüft es in Schritt 42 zunächst nach, ob der Aufruf vom Sicherungsanwendungsprogramm kam. Wenn der Aufruf von der Sicherungsapplikation kam, dann geht das Programm zu Schritt 40 über und Daten werden aus der Originaldatei 24 gelesen.
  • Wenn die Leseaufforderung nicht von der Sicherungsapplikation kam, prüft das Programm die Delta- Abbildungstabelle, um zu sehen, ob ein dem Leseaufruf entsprechender Schreibvorgang in den Bereich der Originaldatei 24 zum Deltabereich umgeleitet wurde (Schritt 44). Wenn er nicht umgeleitet wurde (Schritt 46), geht das Programm zu Schritt 40 zurück und die Daten werden aus der Originaldatei 24 gelesen. Wenn der Lesevorgang umgeleitet wurde, werden die Daten aus dem richtigen Teil des Deltabereichs 30 gelesen (Schritt 48).
  • Wenn die INT 21 h-Aufforderung weder eine Schreibaufforderung noch eine Leseaufforderung ist, dann wird sie zur normalen INT 21 h-Behandlungsroutine zurückgeleitet.
  • In einer zweiten Ausgestaltung der Erfindung, wenn Lese- und Schreibvorgänge während des Aufzeichnungsprozesses abgefangen werden, werden die Originaldaten im Deltabereich gespeichert und die Originaldatei darf geändert werden, anstatt daß die geänderten Daten im Deltabereich gespeichert werden, wenn der erste Schreibvorgang in einen bestimmten Bereich einer Datei durchgeführt wird. In die Abbildungstabelle wird eine Eintragung eingetragen, die auf den ursprünglichen Inhalt dieses Bereichs der Originaldatei hinweist, der jetzt im Deltabereich gespeichert wird. Jedes nachfolgende Schreiben in den gleichen Bereich der Datei wird dann vom Aufzeichnungsprozeß ignoriert. Leseanforderungen von der Sicherungsapplikation werden dann zum Deltabereich umgeleitet, wenn die Abbildungstabelle andeutet, daß dieser Bereich der Originaldatei überschrieben wurde.
  • In Fig. 4 ist die zweite Ausgestaltung in einem Ablaufdiagramm dargestellt. Das Diagramm ähnelt dem von Fig. 3, wobei Schritte mit der gleichen Bezugsnummer eine ähnliche Operation bezeichnen.
  • Die Unterschiede zwischen den beiden Figuren (3 und 4) sind wie folgt:
  • In Schritt 60 werden die Daten, wenn das Lese-Abfangen aktiv ist (Schritt 38) und der Lesevorgang nicht von der Sicherungsapplikation ausgeht, aus dem Originaldatenbereich gelesen. Dies ist das Gegenteil von Schritt 42 in Fig. 3.
  • Nach Schritt 28 ist ein zusätzlicher Schritt 62 eingefügt, der Daten aus dem Originaldatenbereich liest, bevor sie das erste Mal überschrieben werden.
  • Schritt 36 von Fig. 3 wurde geändert, um den neuen Schritt 64 zu bilden, der ein zusätzliches Schreiben der in Schritt 62 gelesenen Daten in den Deltabereich beinhaltet.
  • Schritt 32 wurde geändert, um den neuen Schritt 66 zu bilden, der die Daten nicht mehr zum Überschreiben des Deltabereichs umleitet, sondern stattdessen den Originaldatenbereich mit den Daten überschreibt.
  • Dieses zweite Verfahren ist langsamer als das erste, da jede Dateien-Schreibanforderung ein Lesevorgang und zwei Schreibvorgänge wird gegenüber dem einen umgeleiteten Schreibvorgang des ersten Verfahrens. Das zweite Verfahren erfordert jedoch nicht, daß die im Deltabereich gespeicherten Daten auf die Originaldatei angewendet werden, wenn die Sicherung komplett ist. Die Delta-Abbildungstabelle und die im Deltabereich gespeicherten Daten können einfach verworfen werden. Aufgrund dieses Unterschieds brauchen außerdem auch keine Vorkehrungen zum Wiederherstellen nach dem Eintreten eines fatalen Zustands (wie z. B. einem Stromausfall), wenn die Deltaänderungen nicht vollständig auf die Originaldaten angewendet wurden, getroffen werden.
  • In dem Fall, in dem das oben erläuterte Verfahren Teil einer Sicherungsapplikation bildet, kann das Abfangen von Lesevorgängen innerhalb der Sicherungsapplikation stattfinden und braucht nicht die Verwendung einer Betriebssystemroutine zu beinhalten.
  • Die detaillierte Implementierung eines Systems, wie unter Bezugnahme auf die Fig. 3 und 4 beschrieben, liegt innerhalb der Kompetenz des Fachmanns, und eine vollständige Beschreibung von ihr ist nicht notwendig. Bei der Implementierung in MS. DOS wird der Leser für Hintergrundmaterial, falls benötigt, auf das Betriebssystem DOS Referenzhandbuch von IBM verwiesen.
  • Das System wird vorzugsweise als Teil des Betriebssystems selbst implementiert, entweder indem es ein integrierter Bestandteil des ursprünglichen Betriebssystemcodes ist oder indem es eine Erweiterung dazu in der Form eines Gerätetreibers bildet. Im Fall von Intel 80386 (und höheren) Zentraleinheiten würde das System im typischen Fall auf der höchsten Privilegebene operieren, die als "Ring 0" bekannt ist, auf der der Zugang zu allen Elementen im System frei ist.
  • Das System ist aber nicht von irgendeiner bestimmten CPU- Architektur abhängig, um funktionieren zu können. Es kann leicht auf anderen Systemen implementiert werden, z. B. auf Macintosh-Computern, die CPU der Serien 68000 und PowerPC verwenden.
  • Das System kann in einer Multi-User-Umgebung verwendet werden. In diesem Fall wird bevorzugt, daß das System in einer Umgebung mit Dateizugriffskontrolle verwendet wird. Das System gewährleistet, daß eine unverfälschte Sicherungskopie hergestellt wird, während der Rest des Systems effektiv vollkommen so funktioniert, wie dies der Fall wäre, wenn die Änderung nicht vorläge. In der Abwesenheit einer Dateizugriffskontrolle besteht die Gefahr einer Dateiverfälschung, ungeachtet dessen, ob das beschriebene Verfahren im Einsatz ist oder nicht.
  • Das System ist besonders anwendbar auf von Datenbanken, wie z. B. dBase, erstellte Dateien, die groß sein können und in Sätze unterteilt sind. Die aktualisierten Sätze sind in der Tabelle aufgezeichnet, und es werden sowohl aktualisierte als auch Originalversionen des Satzes geführt, bis die Sicherung abgeschlossen ist. Die Tabelle kann z. B. den Anfangspunkt in der Datei, an dem die aktualisierten Daten anfangen, und einen Längenwert enthalten, der der Menge der aktualisierten Daten entspricht. Alternativ kann die Tabelle eine Identifikation hinsichtlich der Identität der aktualisierten Sätze enthalten.
  • In einer Multi-User- oder Netzsituation, wenn die Computerumgebung die Identifikation eines bestimmten Benutzers, der eine Sicherung durchführen möchte, zuläßt, kann das Verfahren auch die Schritte der Erkennung des Benutzers und der Sicherung nur der Dateien dieses Benutzers auf die oben beschriebene Weise beinhalten. Auf diese Weise ist es nicht nowendig, alle Datentransaktionen abzufangen, sondern nur die, die sich auf diesen Benutzer beziehen.
  • Anforderungsquellenidentifikation
  • Die oben beschriebenen Sicherungsverfahren, die an offenen Dateien durchgeführt werden können, stützen sich auf die Fähigkeit, zwischen Leseanforderungen, die von der Sicherungsapplikation stammen, und jenen, die von anderen Quellen stammen, z. B. normalen Applikationen, zu unterscheiden. Das tritt in Schritt 42 in Fig. 3 oder Schritt 60 in Fig. 4 ein.
  • Vorausgesetzt, daß das Open-File-Verfahren als ein integrierter Bestandteil der Sicherungsapplikation bereitgestellt ist, kann die Quelle von Leseanforderungen leicht bestimmt werden, da die Sicherungsapplikation "weiß", welche Anforderungen sie ausgibt. Es entsteht aber ein Problem, wenn die Sicherungsapplikation bereits existiert, z. B. in der Form eines standardmäßigen Serienpakets oder sonst in einer Form, in der sie nicht geändert werden kann, um das Open-File-Verfahren aufzunehmen, das stattdessen durch zusätzlichen Code implementiert werden muß.
  • Gemäß der Erfindung der Hauptanmeldung werden Anforderungen von der Sicherungsapplikation durch Verfolgen der Ereigniskette (z. B. Zurück- oder "Nach-Oben"-Blicken), um den Codebereich zu identifizieren, der die Leseanforderung einleitete, von anderen Anforderungen unterschieden. Im folgenden Beispiel eines solchen Verfahrens wird veranschaulichend wieder das MS. DOS-Betriebssystem verwendet; ähnliche Methoden können aber auf andere Betriebssystemumgebungen angewendet werden.
  • Die Leseanforderung wird von einer INT 21 h-Aufforderung initiiert, die normalerweise direkt zur Interrupt-Handler- Routine gehen würde. Die Interrupt-Handler-Routine hat im allgemeinen keine Kenntnis vom Aufrufer. Sie wird nur angewiesen, eine bestimmte Funktion auszuführen und dann zum Aufrufer zurückzukehren. In den oben erwähnten Intel-CPU, die in DOS-Umgebungen verwendet werden, legt die CPU die Rücksprungadresse des Aufrufers automatisch auf den "Stapel" und springt zur ersten Anweisung der Interrupt-Routine. Wenn die Funktion durchgeführt worden ist, stellt der Interrupt- Handler eine IRET- (Unterbrechungsrücksprung-)Anweisung aus, die die CPU veranlaßt, die Rücksprungadresse aus dem Stapel abzurufen und die Ausführung an der Rücksprungadresse fortzusetzen. Der Interrupt-Handler braucht also keine Kenntnis über den Aufrufer zu haben und hat auch keine.
  • In den oben unter Bezugnahme auf Fig. 3 und 4 beschriebenen Systemen wird die INT 21 h-Interrupt-Routine durch einen alternativen Anweisungssatz ersetzt. Diese Funktionen können zusätzlich zu den im vorangehenden beschriebenen Funktionen angepaßt werden, um zusätzlich die Quelle der Anforderung zu bestimmen, wie folgt.
  • In dieser Verbesserung untersucht der Interrupt-Handler den Stapel, um die Rücksprungadresse zu bestimmen. Im Fall der Intel-CPU der Serie 80 · 86 werden der Coderelativzeiger und das Codesegment des Aufrufers als die ersten und zweiten Wörter an der Spitze des Stapels gespeichert, d. h. SS:[SP] bzw. SS:[SP+2]. Ein Abriß der an einer MS. DOS-Implementierung dieser Verbesserung beteiligten Schritte wird als Anhang zu dieser Beschreibung gegeben.
  • Die Routine kann dann die Quelle des Aufrufs, wie vom Stapel definiert, betrachten und das Programm, das den Aufruf machte, auf verschiedene Arten bestimmen, für die folgendes Beispiele sind:
  • (i) Da der Code in jeder Version eines serienmäßigen Programms der gleiche ist, können verschiedene Eigenschaften des Codes um die Rücksprungadresse herum untersucht werden, um zu bestimmen, ob der Aufrufer ein bekanntes Sicherungsprogramm ist. Der Code um die Rücksprungadresse herum wird mit dem vom verwendeten Sicherungsprogramm erwarteten Code verglichen, um zu bestimmen, ob es eine Übereinstimmung gibt, die andeutet, daß der Aufruf vom Sicherungsprogramm gemacht wurde.
  • (ii) Alternativ kann der Programmname durch Bezugnahme auf das Programmsegmentpräfix (PSP) und den Umgebungsstring, die mit jedem geladenen Programm assoziiert sind, ermittelt werden. Vom Stapel her ist das Segment bekannt und das PSP kann gelesen werden. Dadurch kann der Umgebungsstring und somit der Programmname ausgemacht werden. Diese Methode wird im Textbuch "Undocumented DOS" von Andrew Schulman et al. Verlag Addison-Wesley, 2. Ausgabe 1993, ISBN 0-201-63287-X, siehe Kapitel 7, insbesondere Seiten 356-359, ausführlich beschrieben.
  • Im Fall von anderen Betriebssystemen als MS. DOS kann die Identität des Aufrufers anhand von anderen Parametern im Stapel, einschließlich Verbindungsnummern, Task- Identitätsnummern, Prozeßnummern und dergleichen, bestimmt werden. In bestimmten Betriebssystemen können zum Ermitteln des Namens des Prozesses auch globale Variablen verwendet werden.
  • Das Verfahren stützt sich auf die Identifizierung einiger bekannter Eigenschaften des Aufrufers, wie z. B. Programmname, Prozeßname (oder Threadname) oder durch Identifizieren einer "Signatur" im Programmcode, die eine bekannte Bytefolge sein kann, indem über den Stapel zurück zum Aufruferprogramm geblickt wird.
  • Gemäß einer zweiten Verbesserung, die in einer Netzserverumgebung verwendet werden kann, wird die Identität des Aufruferprogramms bestimmt, indem ein besonderer Benutzername nur für Sicherungszwecke reserviert wird. Anstatt die Identität des Programms zu ermitteln, wird der Name des Benutzers (eindeutige Benutzeridentifikation) identifiziert, und es wird angenommen, daß alle Anforderungen vom reservierten Benutzer von einem Sicherungsprogramm kommen. Da jeder Benutzer sich bei einem Server einloggen muß, bevor er Zugriff auf Dateien erhält, ist dies ein effektives Verfahren, selbstverständlich vorausgesetzt, daß der Benutzername immer für die Sicherung und nicht für einen anderen Zweck verwendet wird. Dieses Verfahren erfordert kein Vorauswissen über das betreffende Sicherungsprogramm.
  • Ähnlicherweise kann die für den Sicherungsprozeß spezifische Prozeß- oder Taskidentifikation abgefragt werden, um zu bestimmen, ob es der Sicherungsprozeß oder eine andere Applikation ist, die den Lesevorgang aufruft. Es bestehen nie gleichzeitig zwei Tasks mit der gleichen Identifikation (ID), so daß sie die Prozesse in jedem Moment eindeutig identifizieren können (obwohl die Tasknummern wiederverwendet werden).
  • Das vorangehende wurde als Applikation auf Leseanforderungen beschrieben, es ist aber möglich, das gleiche Programm auch auf Schreibanforderungen anzuwenden. Im Fall, daß das Sicherungsprogramm eine Schreibanforderung ausgibt, können dann entsprechende Maßnahmen getroffen werden, die normalerweise eine Fehlerroutine einbeziehen, da die Sicherungsapplikation normalerweise keine Schreibanforderungen an den Interrupt-Handler ausstellen sollte.
  • Wie oben beschrieben, sehen die zusätzlichen Anweisungen zunächst nach, ob der Unterbrechungsaufruf eine Lese- (oder Schreib-)anforderung ist, und wenn das der Fall ist, sehen sie nach, ob die Anforderung vom Sicherungsprogramm oder von einer anderen Applikation ausgestellt wurde. Im Prinzip könnte die Reihenfolge dieser beiden Vorgänge aber umgekehrt werden und die Quelle des Aufrufs zuerst bestimmt werden, bevor die Art des Aufrufs untersucht wird.
  • Garantierter Dateienzugriff
  • Das unter Bezugnahme auf Fig. 3 und 4 beschriebene Open-File-Sicherungsverfahren geht davon aus, daß die Sicherungsapplikation immer Lesezugriff auf Dateien erhalten kann. In der Praxis kann es aber sein, daß dies nicht immer der Fall ist, da die Datei vielleicht schon für exklusive Lese-/Schreibbenutzung durch eine andere Applikation geöffnet wurde und der Zugang zur Sicherungsapplikation daher eventuell verweigert wird.
  • Gemäß der vorliegenden Erfindung hat der vorliegende Erfinder erkannt, daß es in Wirklichkeit völlig sicher ist, daß die Sicherungsapplikation Lesezugriff auf die Datei hat, da eine Sicherungsapplikation niemals in Dateien schreiben sollte, die sie sichert, und weil das oben beschriebene Open- File-Verfahren gewährleistet, daß die Kopie der Datei, die von der Sicherungsapplikation erhalten wurde, sich während des Sicherns nicht ändert.
  • Der Zugang für Sicherungszwecke kann wie folgt bereitgestellt werden. Betriebssysteme führen im allgemeinen eine Tabelle aller offenen Dateien, die Informationen wie Dateien-Handle-Kennungen, Relativzeiger aktueller Dateien und für jede offene Datei gehaltene Zugangsrechte beinhaltet.
  • Im Fall des MS. DOS-Betriebssystems werden Dateien mit der INT 21 h-Funktion geöffnet. Dateieröffnungsanforderungen können somit durch einen Zusatz zum gleichen alternativen Anweisungssatz, wie oben beschrieben, identifiziert werden. Indem die im vorangehenden Abschnitt beschriebenen Methoden zur Identifikation der Anforderungsquellen verwendet werden, oder durch direkte Anweisung vom Sicherungsprogramm kann ermittelt werden, daß die Dateieröffnungsanforderung von der Sicherungsapplikation gemacht wurde, und wenn dies der Fall ist, kann die Open-File-Tabelle vorübergehend manipuliert werden, um sicherzustellen, daß der Dateizugriff gewährt wird, selbst wenn er normalerweise nicht erlaubt würde. Wenn der Zugriff gewährt worden ist, aber bevor der Interrupt-Handler zurückspringt, wird die Tabelle in ihren früheren Zustand zurückversetzt, so daß nachfolgenden Anforderungen von anderen Applikationen der Zugang wie normal verweigert wird. Anforderungen zum Lesen aus der Sicherungsapplikation werden dann erfüllt, auch wenn die Originalapplikation glaubt, daß sie exklusive Benutzung der Datei hat.
  • In MS. DOS ist die Open-File-Tabelle als Systemdateitabelle (System File Table: SFT) bekannt. Die SFT ist eine Tabelle, die für jede offene Datei einen Eintrag enthält. Jeder Eintrag enthält den für Dateizugriff gewährten Zugangsmodus. Die zusätzlichen Anweisungen, die notwendig sind, ändern die SFT, wenn die Sicherungsapplikation Zugang zu einer offenen Datei benötigt, indem sie den entsprechenden SFT-Eintrag vorübergehend ändern, um den Eindruck zu schaffen, daß Zugangsrechte, die normalerweise den Zugang durch das Sicherungsprogramm verhindern würden, noch nicht gewährt wurden. Der Zugang wird dann erlaubt und ein "Datei-Handle" zugeteilt. Bevor zum Aufrufer zurückgesprungen wird, werden die Zugangsrechte im SFT-Eintrag wieder in ihren Originalzustand versetzt.
  • Die Systemdateitabelle (SFT) wird in dem Textbuch "Undocumented DOS", auf das oben Bezug genommen wird, ausführlich beschrieben, siehe Kapitel 8, Seiten 465-469 und 490-494. Die im Fall des DOS-Betriebssystems im INT 21 h- Interrupt-Handler erforderlichen Schritte zum Gewährleisten des Zugangs zur Sicherungsanwendung werden speziell in Fig. 5 gezeigt.
  • In Schritt 70, Bezug nehmend auf Fig. 5, wird nach Erhalt eines Dateieröffnungskommandos als eine INT 21 h-Aufforderung unter Verwendung einer der im vorangehenden Abschnitt beschriebenen Methoden die Quelle der Aufforderung bestimmt. Wenn sie es ist, dann wird in Schritt 72 bestimmt, ob die Datei, auf die Zugriff gewünscht wird, bereits offen ist. Wenn die Antwort zu einer dieser beiden Fragen NEIN ist, dann kehrt das Programm zur normalen INT 21 h Handler-Routine, Schritt 74, zurück. Wenn die Antwort auf beide Fragen JA ist, dann wird der in Fig. 5 beschriebene Spezialcode ausgeführt.
  • Dieser läuft wie folgt ab. Jeder Eintrag in die SFT enthält den dem Anforderungsprozeß gewährten Zugangsmodus ("Zugangsmodusattribut"). In Schritt 76 wird das aktuelle oder Original-Zugangsmodusattribut des betreffenden Eintrags in die SFT gespeichert. In Schritt 78 wird das Zugangsmodusattribut dann in einen Zustand "deny none" ("Keine verweigern") geändert, so daß die SFT insofern effektiv funktionsunfähig wird, als sie Mehrfachzugriff zur offenen Datei nicht verhindert. Jetzt kann der normale INT 21 h-Interrupt-Handler in Schritt 80 aufgerufen werden, um die Datei für das Sicherungsprogramm normal zu öffnen. Wenn das Sicherungsprogramm mit der Datei fertig ist, wird das ursprüngliche, zuvor gespeicherte Zugangsmodusattribut wieder in die SFT eingesetzt (Schritt 82). Schließlich wird die Ausführung mit Hilfe der IRET-Anweisung zum Aufrufprogramm, das den Stapel liest, zurückgebracht (Schritt 84)
  • Die im Anhang genannten Schritte setzen voraus, daß diese Verbesserung, die garantierten Dateizugriff gewährt, verwendet wird.
  • Wie genau die SFT geändert wird, ist nicht wichtig, und diverse Verfahren könnten verwendet werden. Das bevorzugte Verfahren manipuliert die Sharing-Felder "share prev sft" und "Share net machine" (siehe Undocumented DOS, Seite 478). Durch Manipulieren dieser Felder, z. B. durch Ändern eines "deny read"-Wertes ("Lesen verweigern") in "deny none" ("keinen verweigern"), kann bewirkt werden, daß dem Sicherungsprogramm Zugang gewährt wird. Alternativ könnten Teile des SHARE- Dienstprogramms, das Teil von MS. DOS ist, so geändert werden, daß der Zugang gewährt wird (siehe op. cit., Seiten 490 - 494).
  • In anderen Betriebssystemumgebungen, z. B. Novell NetWare, würde ein ähnliches Verfahren verwendet werden.
  • Feststellen eines "guten" Status
  • Das oben unter Bezugnahme auf die Fig. 3 und 4 beschriebene Open-File-Sicherungsverfahren gewährleistet, daß sich eine für die Sicherung geöffnete Datei nicht verändert, während die Sicherung läuft. Allerdings stellt es nicht fest, ob die Datei sich in dem Moment, in dem die Sicherung beginnt, in einem "guten" Status befindet. Beispielsweise könnte eine andere Applikation eine Transaktion schreiben, die eine Reihe von Schreibvorgängen beinhaltet, von denen einige durchgeführt wurden und einige nicht. Weil die Sicherungsmethode an offenen Dateien arbeitet, ist es daher möglich, daß die Sicherungsapplikation eine Kopie der Datei erhält, die eine teilweise Transaktion enthält. Dieses Merkmal bildet den Gegenstand einer zweiten Ausscheidungsanmeldung aus der Hauptanmeldung zum vorliegenden Fall.
  • Gemäß der vorliegenden Erfindung hat der Erfinder anerkannt, daß durch Verzögern der Dateieröffnungsanforderung von einer Sicherungsapplikation bis zu dem Zeitpunkt, an dem bestimmt werden kann, daß eine Transaktion nicht läuft, eine Sicherungskopie von "gutem Status" der Datei gewährleistet werden kann. Da die meisten Netzbetriebssysteme ihrer Art entsprechend Multi-Thread-Systeme sind, d. h. dafür bestimmt sind, jeweils gleichzeitig mehr als einen Prozeß auszuführen, und die Fähigkeit zum Verzögern eines Prozesses, während ein anderer vervollständig wird, ein allgemeines Leistungsmerkmal dieser Betriebssysteme ist, kann dies leicht erzielt werden. Im allgemeinen ist es gleichgültig, ob ein Sicherungsvorgang für eine kurze Zeit aufgehalten wird, da Benutzer gewöhnlich nicht von seiner Vervollständigung abhängig sind, insbesondere dann, wenn Dateien gesichert werden können, wenn sie offen sind. Die Verzögerung der Dateieröffnungsanforderung entspricht der Verzögerung des Startsignals, das die Ausführung der unter Bezugnahme auf Fig. 3 und 4 beschriebenen Routinen beginnt.
  • Transaktionen finden typischenfalls über eine relativ kurze Zeitdauer statt, wobei zwischen Transaktionen längere Zeitabstände auftreten. Ein Anwendungsprogramm führt allgemein alle für eine einzelne Transaktion erforderlichen Schreibvorgänge in rascher Folge durch, da sonst die Gefahr besteht, daß ein Stromausfall oder ein ähnliches fatales Problem bewirkt, daß Plattendaten eine Teiltransaktion enthalten, die sich beim Neustarten des Systems als eine verfälschte Datei herausstellen wird. Eindeutig ist die Wahrscheinlichkeit, daß während dieser Transaktion ein nicht verbundenes fatales Problem (wie ein Stromausfall) auftritt, umso geringer, je kürzer die Zeitdauer ist, über die die Transaktion zur Platte geschrieben wird. Durch Messen der Zeitdauer zwischen aufeinanderfolgenden Schreibvorgängen kann ein Werturteil bezüglich des transaktionalen Status einer Datei getroffen werden. Wenn beispielsweise in der letzten Minute keine Schreibvorgänge stattfanden, ist es sehr unwahrscheinlich, daß eine Applikation das Schreiben einer einzelnen Transaktion teilweise durchgeführt hat. Durch empirisches Anpassen der Inaktivitätszeitdauer an die Charakteristik von Applikationen kann ein hoch zuverlässiger Indikator der Transaktionsvollständigkeit ermittelt werden.
  • Es werden somit verschiedene Verbesserungen der unter Bezugnahme auf Fig. 3 und 4 illustrierten Verfahren beschrieben, nämlich diverse Methoden für die Anforderungsquellenidentifikation, eine Methode zum Gewährleisten von garantiertem Dateizugriff und Methoden zum Gewährleisten, daß die gesicherte Datei in einem "guten" Status ist, bevor die Sicherung stattfindet. Diese diversen Verbesserungen werden vorzugsweise kombiniert verwendet. Sie können aber auch selektiv und unabhängig benutzt werden, und es ist nicht notwendig, daß sie alle gleichzeitig in der gleichen Applikation implementiert sein sollten.
  • Das System wurde in erster Linie im Hinblick auf das DOS- Betriebssystem, insbesondere MS. DOS, beschrieben. Es ist aber zum Funktionieren nicht von einer bestimmten CPU-Architektur abhängig. Insbesondere ist es nicht auf DOS-Betriebssysteme begrenzt und könnte in Novell NetWare, OS/2 oder UNIX und auf Macintosh-Computern mit CPU der Serien 6800 und PowerPC implementiert werden. ANHANG

Claims (4)

1. Betriebsverfahren für ein Multi-Tasking- Mikroprozessor-Computersystem mit einem Befehlsspeicher (14), einer Zentraleinheit (12) und einer Speichereinrichtung (16), wobei das genannte Verfahren die folgenden Schritte umfasst:
Bereitstellen eines auf dem Computersystem fahrenden Sicherungsprozesses, der zum Ausgeben eines Startsignals und eines Stoppsignals und zum Durchführen wenigstens eines Sicherungslesevorgangs zum Lesen von Originaldaten aus der genannten Speichereinrichtung (16) funktionsfähig ist,
Senden (38, 40) von in dem genannten Befehlsspeicher (14) gespeicherten Befehlen an die genannte Zentraleinheit (12), um die genannte Zentraleinheit (12) zum Durchführen wenigstens eines normalen Lesevorgangs zum Lesen von Daten aus der genannten Speichereinrichtung (16) zu veranlassen, und
Bereitstellen einer Dateieröffnungseinrichtung zum Öffnen einer mit einem normalen Lesevorgang zu lesenden Datei und Verweigern des Zugriffs anderer Lesevorgänge auf die genannte Datei,
gekennzeichnet durch den Schritt der Bereitstellung einer mit dem genannten Sicherungsprozess assoziierten Einrichtung, welche die genannte Verweigerungsfunktion der genannten Dateieröffnungseinrichtung deaktiviert, um simultanen Lesezugriff auf die genannte Datei durch einen Sicherungslesevorgang und einen normalen Lesevorgang zuzulassen.
2. Verfahren nach Anspruch 1, bei dem das genannte Computersystem eine Tabelle offener Dateien führt und bei dem die Verweigerungsfunktion durch vorübergehendes umkehrbares Ändern der Tabelle deaktiviert wird.
3. Sicherungssystem für ein Multi-Tasking- Mikroprozessor-Computersystem mit einem Befehlsspeicher (14), einer Zentraleinheit (12) und einer Speichereinrichtung (16), wobei das Sicherungssystem folgendes umfasst:
ein Sicherungsprogramm zum Fahren auf dem genannten Computersystem, das zum Ausgeben eines Startsignals und eines Stoppsignals und zum Durchführen wenigstens eines Sicherungslesevorgangs zum Lesen von Originaldaten aus der genannten Speichereinrichtung (16) funktionsfähig ist,
eine Einrichtung (38, 40) zum Senden von in dem genannten Befehlsspeicher (14) gespeicherten Befehlen an die genannte Zentraleinheit (12), um die genannte Zentraleinheit (12) zum Durchführen wenigstens eines normalen Lesevorgangs zum Lesen von Daten aus der genannten Speichereinrichtung (16) zu veranlassen, und Dateieröffnungseinrichtung zum Öffnen einer mit einem normalen Lesevorgang zu lesenden Datei und zum Verweigern von Zugriff auf die genannte Datei durch andere Lesevorgänge,
gekennzeichnet durch eine mit dem genannten Sicherungsprogramm assoziierte Einrichtung zum Deaktivieren der genannten Verweigerungsfunktion der genannten Dateieröffnungseinrichtung, um simultanen Lesezugriff auf die genannte Datei durch einen Sicherungslesevorgang und einen normalen Lesevorgang zuzulassen.
4. System nach Anspruch 3, bei dem das genannte Computersystem eine Tabelle offener Dateien führt und bei dem die Verweigerungsfunktion durch vorübergehendes umkehrbares Ändern der Tabelle deaktiviert wird.
DE69621841T 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen Dateien Expired - Lifetime DE69621841T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9505939.0A GB9505939D0 (en) 1995-03-23 1995-03-23 A method of operating a computer system
US08/465,925 US5675725A (en) 1993-07-19 1995-06-06 Computer backup system operable with open files

Publications (2)

Publication Number Publication Date
DE69621841D1 DE69621841D1 (de) 2002-07-18
DE69621841T2 true DE69621841T2 (de) 2003-01-23

Family

ID=26306735

Family Applications (3)

Application Number Title Priority Date Filing Date
DE69613594T Expired - Lifetime DE69613594T2 (de) 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen Dateien
DE69621841T Expired - Lifetime DE69621841T2 (de) 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen Dateien
DE69608673T Expired - Lifetime DE69608673T2 (de) 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen dateien

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69613594T Expired - Lifetime DE69613594T2 (de) 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen Dateien

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69608673T Expired - Lifetime DE69608673T2 (de) 1995-03-23 1996-03-18 Rechnersicherungssystem mit offenen dateien

Country Status (22)

Country Link
US (1) US5675725A (de)
EP (3) EP0921467B1 (de)
JP (2) JP3769019B2 (de)
KR (1) KR100413915B1 (de)
CN (2) CN1627267A (de)
AT (3) ATE193608T1 (de)
BG (1) BG63373B1 (de)
BR (1) BR9607912A (de)
CA (1) CA2213312C (de)
CZ (1) CZ294040B6 (de)
DE (3) DE69613594T2 (de)
DK (3) DK0921466T3 (de)
ES (3) ES2148739T3 (de)
GR (2) GR3034153T3 (de)
HU (1) HU224852B1 (de)
IS (1) IS4535A (de)
MX (1) MX9707260A (de)
NO (3) NO317208B1 (de)
NZ (1) NZ304065A (de)
PL (1) PL183365B1 (de)
PT (2) PT921466E (de)
WO (1) WO1996029650A1 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061769A (en) * 1995-09-27 2000-05-09 International Business Machines Corporation Data set backup in a shared environment
US5890165A (en) * 1996-03-29 1999-03-30 Emc Corporation Method and apparatus for automatic discovery of databases
US5829047A (en) * 1996-08-29 1998-10-27 Lucent Technologies Inc. Backup memory for reliable operation
US5966730A (en) * 1996-10-30 1999-10-12 Dantz Development Corporation Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium
CA2221216A1 (en) * 1996-11-15 1998-05-15 Mark Squibb System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
KR19990060338A (ko) * 1997-12-31 1999-07-26 윤종용 하드 디스크 드라이브의 바이러스에 의한 손상 데이터복구방법
US6385707B1 (en) * 1998-02-24 2002-05-07 Adaptec, Inc. Method and apparatus for backing up a disk drive upon a system failure
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
JP3440991B2 (ja) * 1999-03-05 2003-08-25 日本電気株式会社 ファイルリビジョン管理システム
US6453396B1 (en) * 1999-07-14 2002-09-17 Compaq Computer Corporation System, method and computer program product for hardware assisted backup for a computer mass storage system
CN1209708C (zh) * 2000-03-01 2005-07-06 电脑联合想象公司 用于更新计算机文件的备份文件的方法和系统
US6453859B1 (en) 2001-01-08 2002-09-24 Borgwarner Inc. Multi-mode control system for variable camshaft timing devices
US6985915B2 (en) 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US6847983B2 (en) 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
JP3714184B2 (ja) * 2001-03-29 2005-11-09 富士通株式会社 記憶装置のデータ領域間複写処理方法、及び記憶システム
ES2218311T3 (es) * 2001-06-28 2004-11-16 Siemens Aktiengesellschaft Procedimiento para la reduccion del tiempo de bloqueo durante la salvaguarda de los datos de una base de datos compartida.
US7752169B2 (en) * 2002-06-04 2010-07-06 International Business Machines Corporation Method, system and program product for centrally managing computer backups
US7805401B2 (en) 2003-04-14 2010-09-28 Novell, Inc. Method and apparatus for splitting a replicated volume
US7281014B2 (en) * 2003-04-14 2007-10-09 Novell, Inc. Method and apparatus for moving data between storage devices
US7222143B2 (en) * 2003-11-24 2007-05-22 Lenovo (Singapore) Pte Ltd. Safely restoring previously un-backed up data during system restore of a failing system
US7380246B2 (en) * 2003-12-15 2008-05-27 Lenovo (Singapore) Pte. Ltd. Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented with byte-range locking
US20050131960A1 (en) * 2003-12-15 2005-06-16 Reed Benjamin C. Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented at file-open time
CN100407158C (zh) * 2005-04-21 2008-07-30 中兴通讯股份有限公司 一种在通信设备中保存数据文件的方法
JP4577242B2 (ja) * 2006-03-10 2010-11-10 日本電気株式会社 データバックアップシステム、データバックアップ方法、及びその動作制御プログラム
US9015127B2 (en) * 2006-12-27 2015-04-21 Oracle America, Inc. File archiving system and method
US20080215639A1 (en) * 2007-01-04 2008-09-04 Imusicdrive, Llc Data Synchronization
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
EP2259181A1 (de) * 2007-07-11 2010-12-08 Citrix Systems, Inc. Verfahren und Systeme zur Bereitstellung eines Zugangslevels für eine Berechnungsvorrichtung
JP4972046B2 (ja) * 2008-07-14 2012-07-11 日本電信電話株式会社 アクセス監視システムおよびアクセス監視方法
CN101694636B (zh) * 2009-10-21 2012-05-23 上海坚芯电子科技有限公司 非易失性数据存储器数据更新备份系统及方法
JP5587050B2 (ja) * 2010-06-22 2014-09-10 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US8495019B2 (en) 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
JP5619198B2 (ja) * 2013-02-04 2014-11-05 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US9229821B2 (en) 2013-11-13 2016-01-05 International Business Machines Corporation Reactionary backup scheduling around meantime between failures of data origination
CN104375906B (zh) * 2014-11-19 2017-06-13 天津南大通用数据技术股份有限公司 一种基于文件系统的大规模备份数据快速校验方法
CN112685222B (zh) 2019-10-17 2024-09-13 伊姆西Ip控股有限责任公司 管理备份数据的方法、设备和计算机程序产品

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686620A (en) * 1984-07-26 1987-08-11 American Telephone And Telegraph Company, At&T Bell Laboratories Database backup method
US5065354A (en) * 1988-09-16 1991-11-12 Compaq Computer Corporation Queued posted-write disk write method with improved error handling
GB2230626A (en) * 1989-04-20 1990-10-24 Croftlands Ltd Computerised database system
WO1991001026A2 (en) * 1989-07-11 1991-01-24 Intelligence Quotient International Limited A method of operating a data processing system
US5163148A (en) * 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
EP0516900B1 (de) * 1991-06-04 1996-05-01 International Business Machines Corporation Datensicherung und Beseitigung in einem Datenverarbeitungssystem
CA2071346A1 (en) * 1991-10-18 1993-04-19 Claus William Mikkelsen Method and means for time zero backup copy of data
US5241669A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for sidefile status polling in a time zero backup copy process
US5241670A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated backup copy ordering in a time zero backup copy session
US5379398A (en) * 1992-04-20 1995-01-03 International Business Machines Corporation Method and system for concurrent access during backup copying of data

Also Published As

Publication number Publication date
CN1627274A (zh) 2005-06-15
NO973991D0 (no) 1997-08-29
DE69621841D1 (de) 2002-07-18
CN1627267A (zh) 2005-06-15
CZ294040B6 (cs) 2004-09-15
BG63373B1 (bg) 2001-11-30
PL322454A1 (en) 1998-02-02
DE69613594D1 (de) 2001-08-02
DK0921467T3 (da) 2001-10-22
CZ293097A3 (cs) 1999-01-13
JP2006099784A (ja) 2006-04-13
EP0921467B1 (de) 2001-06-27
NZ304065A (en) 1999-02-25
BG101864A (en) 1998-05-29
ES2159916T3 (es) 2001-10-16
DE69608673T2 (de) 2001-01-11
JP3769019B2 (ja) 2006-04-19
DK0921466T3 (da) 2002-09-16
KR100413915B1 (ko) 2004-04-29
EP0921466B1 (de) 2002-06-12
PL183365B1 (pl) 2002-06-28
NO20041944D0 (no) 2004-05-12
IS4535A (is) 1997-07-31
JPH11502339A (ja) 1999-02-23
NO317208B1 (no) 2004-09-20
KR19980703229A (ko) 1998-10-15
GR3036695T3 (en) 2001-12-31
MX9707260A (es) 1997-12-31
HUP9900368A3 (en) 1999-11-29
EP0815512A1 (de) 1998-01-07
HUP9900368A2 (hu) 1999-05-28
EP0815512B1 (de) 2000-05-31
WO1996029650A1 (en) 1996-09-26
US5675725A (en) 1997-10-07
ATE193608T1 (de) 2000-06-15
ATE202645T1 (de) 2001-07-15
EP0921466A1 (de) 1999-06-09
DE69613594T2 (de) 2002-04-25
CA2213312C (en) 2004-05-11
AU695339B2 (en) 1998-08-13
NO20041944L (no) 1997-11-24
DE69608673D1 (de) 2000-07-06
NO20041945L (no) 1997-11-24
DK0815512T3 (da) 2000-09-11
PT921466E (pt) 2002-11-29
PT921467E (pt) 2001-12-28
ATE219262T1 (de) 2002-06-15
ES2179424T3 (es) 2003-01-16
AU5115496A (en) 1996-10-08
GR3034153T3 (en) 2000-11-30
CA2213312A1 (en) 1996-09-26
HU224852B1 (en) 2006-03-28
ES2148739T3 (es) 2000-10-16
BR9607912A (pt) 1998-06-09
NO973991L (no) 1997-11-24
EP0921467A1 (de) 1999-06-09

Similar Documents

Publication Publication Date Title
DE69621841T2 (de) Rechnersicherungssystem mit offenen Dateien
DE69416591T2 (de) Dateisicherungssystem
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE112005002402B4 (de) Hybride Hardware-/Software-Implementierung eines Transaktionsspeicherzugriffs
DE69717876T2 (de) Eingabe-/Ausgabesteuergerät mit Wiederanlaufkennzeichnungsfunktion
DE69025507T2 (de) Gerät zur Sicherung und Wiederherstellung für Digitalrechner
DE69604882T2 (de) Einzeltransaktionsverfahren für ein Dateiensystem mit Logging-Möglichkeit in einem Rechnerbetriebssytem
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE69119222T2 (de) Datensicherung und Beseitigung in einem Datenverarbeitungssystem
DE69324840T2 (de) Verfahren zum Speichern von Programmen
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69222169T2 (de) Verfahren und vorrichtung zur datenerholung in mehrstufigen datenbanksystemen
DE4220198C2 (de) Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem
DE60001976T2 (de) Verfahren und system zur datensicherung/wiederherstellung von an einer einzigen stelle gespeicherten dateien
DE3788444T2 (de) Verfahren zum Wiederanlauf einer langlaufenden fehlertoleranten Operation in einem transaktionsorientierten Datenbasissystem.
DE69803304T2 (de) Hardwareunterstütztes verfahren zum kontextwechsel
DE69601850T2 (de) Transaktionsgerättreiberverfahren für ein Dateiensystem mit Logging-Möglichkeit
DE69617511T2 (de) Verfahren und Gerät zum Verwalten von Objekten in einer verteilten Objektbetriebsumgebung
DE3786956T2 (de) Verwaltung von registrierungsdaten in einem transaktionsorientierten System.
DE69312781T2 (de) Verfahren und System zum Seitendatei Statusabrufen in einem Nullzeittyp Sicherungskopieprozess
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE69428741T2 (de) Dateisicherungssystem
DE69703574T2 (de) Vorrichtung zur Prüfpunkterfassungsbeschleunigung
US7836267B1 (en) Open computer files snapshot

Legal Events

Date Code Title Description
8364 No opposition during term of opposition