Anfordernde Rolle in inkrementellen und differenziellen VSS-Sicherungen

Um einen inkrementellen oder differenziellen Sicherungsvorgang zu unterstützen, muss ein Anforderer folgende Schritte ausführen:

  1. Bestimmen Sie, welcher Grad an Writerunterstützung verfügbar ist (mithilfe von IVssBackupComponents::GetWriterMetadata, um Zugriff auf Informationen in WriterMetadatendokumenten zu erhalten). Bestimmen Sie insbesondere, welches Sicherungsschema unterstützt wird (VSS _ BACKUP _ SCHEMA).
  2. Legen Sie einen geeigneten Sicherungsstatus fest.
  3. Rufen Sie Spezifikationen auf Datei- und Dateisatzebene für eine inkrementelle oder differenzielle Sicherung ab.
  4. Führen Sie die Sicherung aus.

Bestimmung der inkrementellen und differenziellen Unterstützung und Konfiguration durch anfordernde Benutzer

Ein Anforderer muss Informationen zur Writerunterstützung abrufen, bevor er Komponenten für die Aufnahme in eine inkrementelle oder differenzielle Sicherung oder das Festlegen eines eigenen Zustands auswählt.

Bestimmen der Writer-Unterstützung

Ein Anforderer bestimmt, ob ein angegebener Writer inkrementelle oder differenzielle VSS-Sicherungen unterstützt, indem er die Sicherungsschemamaske des Writers mithilfe der IVssExmobileWriterMetadata::GetBackupSchema-Methode abruft.

Die Sicherungsschemamaske eines Writers, der inkrementelle oder differenzielle VSS-Techniken unterstützt, enthält entweder VSS _ BS _ INCREMENTAL oder VSS _ BS _ DIFFERENTIAL oder beides. Writer können auch Einschränkungen für ihre Teilnahme mit dem _ VSS BS _ EXCLUSIVE INCREMENTAL _ _ DIFFERENTIAL-Flag angeben. (Weitere Informationen zu Sicherungsschemas finden Sie unter VSS _ BACKUP _ SCHEMA.)

Festlegen des Sicherungsstatus des Anfordernden

Ein Anforderer gibt an, dass es sich bei einer Sicherung um eine inkrementelle oder differenzielle Sicherung handelt, indem ein Sicherungstyp entweder auf VSS _ BT _ INCREMENTAL oder VSS _ BT _ DIFFERENTIAL festgelegt wird, indem die IVssBackupComponents::SetBackupState-Methode verwendet wird, bevor ein PrepareForBackup-Ereignis generiert wird.

Die IVssBackupComponents::SetBackupState-Methode wird auch verwendet, um anzugeben, ob der Anfordernde partielle Dateiunterstützungbereitstellt, die häufig verwendet wird, um bestimmte inkrementelle Sicherungs- und Wiederherstellungsvorgänge zu implementieren.

Abrufen von Writerspezifikationen für inkrementelle und differenzielle Sicherungen

Die Dateisicherungsspezifikationsinformationen auf Dateisatzebene (VSS _ FILE SPEC BACKUP _ _ _ TYPE), die im Writer Metadata Document jedes Writers enthalten sind, können nach der erfolgreichen Rückgabe von IVssBackupComponents::GatherWriterMetadatauntersucht werden.

Ein Writer kann jedoch differenzierte Dateien hinzufügen oder eine partielle Dateiunterstützung anfordern, bis das PostSnapshot-Ereignis erfolgreich verarbeitet wurde.

Differenzierte Datei- und partielle Dateiunterstützungsspezifikationen können den Sicherungstyp der Dateispezifikation überschreiben, sodass anfordernde Personen eine vollständige Analyse aller Writerspezifikationen zu inkrementellen und differenziellen Sicherungen bis nach der erfolgreichen Rückgabe von IVssBackupComponents::P repareForBackupzurückstellen möchten.

Abrufen von Dateisicherungsspezifikationsinformationen

Die Dateisicherungsspezifikationsinformationen auf Dateisatzebene (VSS _ FILE SPEC BACKUP _ _ _ TYPE) sind im Writer Metadata Document jedes Writers enthalten und können unmittelbar nach der erfolgreichen Rückgabe von IVssBackupComponents::GatherWriterMetadatauntersucht werden.

Anforderer müssen Dateisicherungsspezifikationsmasken (VSS _ FILE SPEC BACKUP _ _ _ TYPE) für jeden Dateisatz jeder Komponente eines Writers abrufen, der in die inkrementelle oder differenzielle Sicherung eingeschlossen werden soll, unabhängig davon, ob die Komponente explizit oder implizit eingeschlossen wurde.

Ein Anforderer kann mithilfe von IVssBackupComponents::GetWriterComponentsCount und IVssBackupComponents::GetWriterComponentsbestimmen, welches Writermetadatendokument abgefragt werden muss. Die Instanz der IVssWriterComponentsExt-Schnittstelle, die von IVssBackupComponents::GetWriterComponents zurückgegeben wird, stellt Writerinformationen über die IVssWriterComponentsExt::GetWriterInfo-Methode bereit.

Der Anforderer ruft Komponenteninformationen über Instanzen der IVssWMComponent-Schnittstelle ab, die einer eingeschlossenen Komponente entsprechen, die von einem bestimmten Writer mithilfe von IVssExwriterMetadata::GetComponentverwaltet wird.

Die Informationen zu Dateisätzen, die von der Komponente verwaltet werden, die der IVssWMComponent-Schnittstelle entspricht, werden durch Aufrufe von IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFileoder IVssWMComponent::GetDatabaseLogFile (je nach Bedarf) abgerufen.

Diese Aufrufe können Instanzen der IVssWMFiledesc-Schnittstelle für jeden Dateisatz einer Komponente zurückgeben.

Der Sicherungstyp einer Dateispezifikation eines Dateisatzes wird durch Aufrufen von IVssWMFiledesc::GetBackupTypeMaskabgerufen.

Abrufen von Partiellen Datei- und Differenzdateiinformationen

Ein Anforderer ruft partielle Datei- und Differenzdateiinformationen über die IVssComponent-Schnittstelle ab.

Ein Anforderer kann alle in einer Sicherung enthaltenen Writer mithilfe von IVssBackupComponents::GetWriterComponentsCount und IVssBackupComponents::GetWriterComponentsiterieren.

Die Instanz einer IVssWriterComponentsExt-Schnittstelle, die von IVssBackupComponents::GetWriterComponents zurückgegeben wird, ermöglicht über die Methoden IVssWriterComponentsExt::GetComponent und IVssWriterComponentsExt::GetComponentsExt::GetComponentsExt::GetComponentCount Zugriff auf alle Instanzen der IVssBackupComponents::GetComponentsExonents-Schnittstelle, die von IVssBackupComponents::GetWriterComponentsExonents zurückgegeben wird.

Ein Anforderer muss alle Instanzen von IVssComponent für alle Writer durchlaufen, deren Schema die inkrementelle oder differenzielle Sicherung unterstützt, d. h. Writer, deren Sicherungsschemamaske, wie von IVssExmobileWriterMetadata::GetBackupSchemazurückgegeben, VSS _ BS _ INCREMENTAL enthält, wenn der Sicherungstyp VSS _ BT _ INCREMENTAL ist, oder _ VSS BS _ DIFFERENTIAL, wenn der Sicherungstyp VSS _ BS _ DIFFERENTIAL ist.

Partielle Dateiinformationen werden durch Aufrufen von IVssComponent::GetPartialFileCount und IVssComponent::GetPartialFile abgerufen (siehe Arbeiten mit Partiellen Dateien).

Für Writer, die Sicherungsvorgänge auf der Grundlage der Daten der letzten Änderung einer Datei unterstützen (Writer, deren Sicherungsschemamaske, wie von IVssExgineWriterMetadata::GetBackupSchemazurückgegeben, _ VSS BS _ LAST _ MODIFY enthält), werden differenzierte Dateiinformationen durch Aufrufen von IVssComponent::GetDifferencedFilesCount und IVssComponent::GetDifferencedFileabgerufen.

Beachten Sie, dass es sich bei differenzierten Dateien möglicherweise um neue Dateien handelt, d. h. Um Dateien, die derzeit nicht Mitglied eines Dateisatzes im Writer Metadata Document eines bestimmten Writers sind.

Anforderer sollten dateien nicht finden, die sowohl für partielle Dateivorgänge als auch als unterschiedliche Dateien enthalten sind. Wenn ein Anforderer auf einen solchen Fall trifft, sollte er einen Writerfehler zurückgeben und protokollieren.

Ein Anforderer kann weiterhin mit dem Sichern der Dateien des problematischen Writers fortfahren. In diesem Fall sollte dies jedoch gemäß der Spezifikation erfolgen, die in den Informationen zur differenzierten Datei gefunden wurde.

Implementieren inkrementeller oder differenzieller Sicherungen

Vor der Implementierung einer Sicherung sollten anfordernde Personen Über Informationen darüber verfügen, welche Writer eine inkrementelle oder differenzielle Sicherung unterstützen, alle angeforderten Teildateivorgänge, alle differenzierten Dateien und den Dateispezifikations-Sicherungstyp aller anderen Dateien.

Nicht unterstützte Writer

Writer, deren Schema die inkrementelle oder differenzielle Sicherung nicht unterstützt (Writer, deren Sicherungsschemamaske, wie von IVssExmobileWriterMetadata::GetBackupSchemazurückgegeben, VSS _ BS _ INCREMENTAL enthält, wenn der Sicherungstyp VSS _ BT _ INCREMENTAL ist oder VSS _ BS _ DIFFERENTIAL nicht enthält, wenn der Sicherungstyp VSS _ BS _ DIFFERENTIAL ist), können keine direkte Unterstützung für einen inkrementellen oder differenziellen Sicherungsvorgang bereitstellen.

Dies bedeutet nicht notwendigerweise, dass die Daten der Writer nicht an einem inkrementellen oder differenziellen Sicherungsvorgang beteiligt sind. Die Entscheidung, was zu tun ist, liegt jedoch im Ermessen des Anfordernden. Der Anforderer kann eine der folgenden Schritte ausführen:

  • Sichern Sie keine Dateien, die zu den nicht unterstützten Writern gehören (dies dem Benutzer eindeutig angeben).
  • Sichern aller Dateien von nicht unterstützten Writern
  • Führen Sie eine inkrementelle Sicherung mit Dateisystemdaten und den eigenen Verlaufsprotokollen des Anfordernden durch.

Die letzte Alternative sollte mit großer Sorgfalt verwendet werden, und zwar nur, wenn der Anforderer versteht, ob die beteiligten Writer die inkrementelle oder differenzielle Sicherung und Wiederherstellung von Daten unabhängig vom VSS-Mechanismus unterstützen können.

Unterstützen von Writern

Ein Anforderer muss (in der Reihenfolge) alle differenzierten Dateieneines Writers verarbeiten, dann partielle Dateianforderungen verarbeiten und dann die verbleibenden Dateien gemäß ihrem Dateispezifikations-Sicherungstyp sichern (VSS _ FILE SPEC _ BACKUP _ _ TYPE).

  1. Sichern von differenzierten Dateien:

    Für Writer, die Sicherungsvorgänge auf der Grundlage von Daten der letzten Änderung unterstützen (Writer, deren Sicherungsschemamaske, wie von IVssExrestWriterMetadata::GetBackupSchemazurückgegeben, _ VSS BS _ LAST _ MODIFY enthält), verwendet ein Anforderer die Pfad-, Dateispezifikations- und Rekursionsflaginformationen, die von IVssComponent::GetDifferencedFile zurückgegeben werden, um eine Liste von Dateien als Kandidaten für inkrementelle Sicherung oder Wiederherstellung zu generieren.

    IVssComponent::GetDifferencedFile kann auch einen Zeitpunkt der letzten Änderung zurückgeben (ausgedrückt als FILETIME-Struktur).

    Wenn der vom Writer angegebene Zeitpunkt der letzten Änderung ungleich 0 (null) ist, verwendet der Anforderer ihn als Grundlage (anstelle von Dateisysteminformationen oder den eigenen gespeicherten Daten des Anforderers), um zu bestimmen, ob die Datei in die inkrementelle oder differenzielle Sicherung aufgenommen werden soll.

    Beispiel: Der zeitpunkt der letzten Änderung einer Datei, der vom Writer zurückgegeben wurde, lautete wie folgt:

    • Nach der letzten vollständigen Sicherung sollte die Datei sowohl in inkrementellen als auch differenziellen Sicherungen enthalten sein.
    • Nach der letzten vollständigen Sicherung, aber vor der letzten inkrementellen Sicherung, sollte die Datei in inkrementelle Sicherungsvorgänge eingeschlossen werden, jedoch nicht in differenzielle Sicherungen.

    Wenn der letzte vom Writer angegebene Änderungszeitpunkt 0 (null) ist, muss der Anforderer Dateisysteminformationen und seine eigenen gespeicherten Daten verwenden, um den Änderungszeitpunkt der differenzierten Datei zu bestimmen.

  2. Verwenden von partiellen Dateivorgängen:

    Wenn ein Writer angefordert hat, dass eine Datei mit einem Teildateivorgang gesichert wird, verwendet der Anforderer die Dateioffsetinformationen, um die angegebenen Dateisegmente auf Sicherungsmedien zu speichern. (Weitere Informationen zu partiellen Dateivorgängen finden Sie unter Arbeiten mit Teildateien.)

    Wie bereits erwähnt, sollte ein Writer eine Datei nicht sowohl als differenzierte Datei als auch als Teilnehmer an einem Teildateivorgang festlegen. Wenn ein Anforderer auf einen solchen Fall trifft, sollte er einen Writerfehler zurückgeben und protokollieren.

    Ein Anforderer kann weiterhin mit dem Sichern der Dateien des problematischen Writers fortfahren. In diesem Fall sollte dies jedoch gemäß der Spezifikation erfolgen, die in den Informationen zur differenzierten Datei gefunden wurde.

  3. Arbeiten mit dem Dateispezifikations-Sicherungstyp:

    Nachdem alle differenzierten Dateien und partiellen Dateivorgänge verarbeitet wurden, verarbeitet der Anforderer jetzt alle verbleibenden Dateien in seinem Sicherungssatz auf Grundlage des Sicherungstyps der Dateispezifikation (VSS _ FILE SPEC BACKUP _ _ _ TYPE).

    Es gibt drei "backup required"-Werte der VSS _ FILE SPEC _ BACKUP _ _ TYPE-Enumeration, die sich auf differenzielle und inkrementelle Sicherungen auswirken:

    • VSS _ FSBT _ – ALLE _ _ SICHERUNGEN ERFORDERLICH
    • INKREMENTELLE VSS _ _ _ FSBT-SICHERUNG _ ERFORDERLICH
    • VSS _ FSBT _ DIFFERENTIAL BACKUP _ _ ERFORDERLICH

    Es sind drei "Schattenkopie erforderlich"-Werte vorhanden:

    • VSS _ FSBT _ – ALLE _ MOMENTAUFNAHMEN _ ERFORDERLICH
    • INKREMENTELLE VSS _ _ _ FSBT-MOMENTAUFNAHME _ ERFORDERLICH
    • VSS _ FSBT _ DIFFERENTIAL SNAPSHOT _ _ ERFORDERLICH

    Dateisätze, die mit einem Dateispezifikationssicherungstyp "Schattenkopie erforderlich" gekennzeichnet sind, geben an, dass ein Anforderer Daten aus einer Schattenkopie kopieren muss, wenn inkrementelle, DIFFERENZIELLE oder ALL-Sicherungsvorgänge (einschließlich inkrementeller und differenzieller Vorgänge) ausgeführt werden.

    Das Flag "Sicherung erforderlich", das auf INKREMENTELLE, DIFFERENZIELLE oder ALLE Sicherungsvorgänge angewendet wird, gibt an, dass der Writer erwartet, dass nach der Wiederherstellung eines Sicherungsvorgangs eine Kopie der aktuellen Version des Dateisatzes verfügbar ist. In der Regel bedeutet dies, dass ein Anforderer, wenn ein Dateisatz mit "Sicherung erforderlich" gekennzeichnet ist, während einer inkrementellen oder differenziellen Sicherung alle seine Mitglieder auf Sicherungsmedien kopiert, unabhängig davon, wann die Sicherung oder Änderung zuletzt erfolgt ist.

    Standardmäßig werden Dateisätze komponenten mit dem Dateispezifikationssicherungstyp VSS _ FSBT _ ALL BACKUP REQUIRED _ _ | VSS _ FSBT ALL SNAPSHOT REQUIRED _ _ _ hinzugefügt. Wenn ein Writer den Dateispezifikations-Sicherungstyp nicht explizit festlegt, müssen anfordernde Personen daher diese Dateien kopieren, die nicht durch partielle Dateivorgänge verarbeitet werden, oder die angegebenen differenzierten Dateien in den meisten Dateisätzen werden in der Regel vollständig auf Sicherungsmedien kopiert.

Sicherungsstempel

Writer, die Sicherungsstempel (VSS _ BS _ TIMESTAMP) unterstützen, können Sicherungsstempelinformationen generieren, die zur Unterstützung zukünftiger inkrementeller und differenzieller Sicherungs- und Wiederherstellungsvorgänge verwendet werden.

Das Format und die Informationen in Zeichenfolgen, die Sicherungsstempelinformationen enthalten, sind für den Writer, der sie generiert, privat. der Anforderer weiß nicht, wie diese Informationen verarbeitet werden sollen.

Unterstützende Writer speichern den Sicherungsstempel im Sicherungskomponentendokument mithilfe der IVssComponent::SetBackupStamp-Methode als Zeichenfolge.

Die Rolle des Anforderers bei der Verarbeitung von Sicherungsstempelinformationen ist (sofern vorhanden), um sie dem Writer durch Aufrufen von IVssBackupComponents::SetPreviousBackupStamp in einem zukünftigen Sicherungs- oder Wiederherstellungsvorgang zur Verfügung zu stellen.