Anfordererrolle in inkrementellen und differenziellen VSS-Sicherungen

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

  1. Ermitteln Sie, in welchem Umfang Writerunterstützung verfügbar ist (mit IVssBackupComponents::GetWriterMetadata , um Zugriff auf Informationen in Writer Metadata Documents) zu erhalten, und ermitteln Sie insbesondere, welches Sicherungsschema unterstützt wird (VSS_BACKUP_SCHEMA).
  2. Legen Sie einen geeigneten Sicherungsstatus fest.
  3. Abrufen von Datei- und Dateisatzebenenspezifikationen für eine inkrementelle oder differenzielle Sicherung.
  4. Führen Sie die Sicherung aus.

Ermitteln des Anforderers für inkrementelle und differenzielle Unterstützung und Konfiguration

Ein Anforderer muss Informationen zur Writerunterstützung abrufen, bevor Er Komponenten für die Aufnahme in eine inkrementelle oder differenzielle Sicherung auswählen oder seinen eigenen Zustand festlegen kann.

Bestimmen der Writerunterstützung

Ein Anforderer bestimmt, ob ein bestimmter Writer inkrementelle oder differenzielle VSS-Sicherungen unterstützt, indem die Sicherungsschemamaske des Writers mithilfe der IVssExamineWriterMetadata::GetBackupSchema-Methode abgerufen wird.

Die Sicherungsschemamaske eines Writers, der inkrementelle oder differenzielle VSS-Techniken unterstützt, enthält entweder VSS_BS_INCREMENTAL oder VSS_BS_DIFFERENTIAL oder beides. Autoren 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 Anforderers

Ein Anforderer gibt an, dass eine Sicherung eine inkrementelle oder differenzielle Sicherung ist, indem ein Sicherungstyp entweder auf VSS_BT_INCREMENTAL oder VSS_BT_DIFFERENTIAL festgelegt wird, indem er die IVssBackupComponents::SetBackupState-Methode verwendet, bevor ein PrepareForBackup-Ereignis generiert wird.

Die IVssBackupComponents::SetBackupState-Methode wird auch verwendet, um anzugeben, ob der Anforderer teilweise Dateiunterstützung bereitstellt, die häufig zum Implementieren bestimmter inkrementeller Sicherungs- und Wiederherstellungsvorgänge verwendet wird.

Abrufen von Writerspezifikationen für inkrementelle und differenzielle Sicherungen

Die Informationen zur Dateisicherung auf Dateisatzebene (VSS_FILE_SPEC_BACKUP_TYPE), die im WriterMetadatendokument jedes Writer enthalten sind, stehen nach erfolgreicher Rückgabe von IVssBackupComponents::GatherWriterMetadata zur Prüfung zur Verfügung.

Ein Writer kann jedoch unterschiedliche Dateien hinzufügen oder um teilweise Dateiunterstützung bitten, bis das PostSnapshot-Ereignis erfolgreich behandelt wird.

Unterschiedliche Datei- und partielle Dateiunterstützungsspezifikationen können den Sicherungstyp der Dateispezifikation außer Kraft setzen, sodass Die Anforderer möglicherweise eine vollständige Analyse aller Writerspezifikationen über inkrementelle und differenzielle Sicherungen aufschieben möchten, bis nach der erfolgreichen Rückgabe von IVssBackupComponents::P repareForBackup.

Abrufen von Dateisicherungsspezifikationsinformationen

Die Dateisicherungsspezifikationsinformationen (VSS_FILE_SPEC_BACKUP_TYPE) auf Dateisatzebene sind in jedem Writer-Metadatendokument enthalten und können unmittelbar nach der erfolgreichen Rückgabe von IVssBackupComponents::GatherWriterMetadata untersucht werden.

Anforderer müssen Dateisicherungsspezifikationsmasken (VSS_FILE_SPEC_BACKUP_TYPE) für jeden Dateisatz der einzelnen Komponenten eines Writers abrufen, die in die inkrementelle oder differenzielle Sicherung einbezogen werden sollen, unabhängig davon, ob die Komponente explizit oder implizit eingeschlossen wurde.

Ein Anforderer kann mithilfe von IVssBackupComponents::GetWriterComponents und IVssBackupComponents::GetWriterComponents ermitteln, welches Writer'-Metadatendokument abgefragt werden muss. Die instance der IVssWriterComponentsExt-Schnittstelle, die von IVssBackupComponents::GetWriterComponents zurückgegeben wird, stellt Schreibinformationen über die IVssWriterComponentsExt::GetWriterInfo-Methode bereit.

Der Anforderer ruft Komponenteninformationen über Instanzen der IVssWMComponent-Schnittstelle ab, die einer enthaltenen Komponente entsprechen, die von einem bestimmten Writer mithilfe von IVssExamineWriterMetadata::GetComponent verwaltet wird.

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

Diese Aufrufe können Instanzen der IVssWMFiledesc-Schnittstelle für die Dateisätze einer Komponente zurückgeben.

Der Sicherungstyp der Dateispezifikation eines Dateisatzes wird durch Aufrufen von IVssWMFiledesc::GetBackupTypeMask abgerufen.

Abrufen von Partiellen Datei- und Differenzdateiinformationen

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

Ein Anforderer kann alle in einer Sicherung enthaltenen Autoren mit IVssBackupComponents::GetWriterComponentsCount und IVssBackupComponents::GetWriterComponents durchlaufen.

Die instance einer IVssWriterComponentsExt-Schnittstelle, die von IVssBackupComponents::GetWriterComponents zurückgegeben wird, bietet Zugriff auf alle Instanzen der IVssComponent-Schnittstelle, die den explizit enthaltenen Komponenten eines bestimmten Writers entsprechen, über die Methoden IVssWriterComponentsExt::GetComponent und IVssWriterComponentsExt::GetComponentCount.

Ein Anforderer muss alle Instanzen von IVssComponent für alle Autoren durchlaufen, deren Schema die inkrementelle oder differenzielle Sicherung unterstützt, d. h. Autoren, deren Sicherungsschemamaske, wie von IVssExamineWriterMetadata::GetBackupSchema zurü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 abgerufen, indem IVssComponent::GetPartialFileCount und IVssComponent::GetPartialFile aufgerufen werden (siehe Arbeiten mit partiellen Dateien).

Für Autoren, die Sicherungsvorgänge auf der Grundlage der letzten Änderungsdaten einer Datei unterstützen (Autoren, deren Sicherungsschemamaske, wie von IVssExamineWriterMetadata::GetBackupSchema zurückgegeben, VSS_BS_LAST_MODIFY enthält), werden unterschiedliche Dateiinformationen durch Aufrufen von IVssComponent::GetDifferencedFilesCount und IVssComponent::GetDifferencedFile abgerufen.

Beachten Sie, dass es sich bei unterschiedlichen Dateien um neue Dateien handelt, d. h. Dateien, die keine Mitglieder eines Dateisatzes sind, die derzeit im Writer Metadata Document eines bestimmten Autors enthalten sind.

Anforderer sollten dateien nicht finden, die sowohl für partielle Dateivorgänge als auch als differenzierte Dateien enthalten sind. Wenn ein Anforderer auf einen solchen Umstand stößt, sollte er einen Writerfehler zurückgeben und protokollieren.

Ein Anforderer kann sich weiterhin dafür entscheiden, mit der Sicherung der problematischen Writer-Dateien fortzufahren, sollte dies jedoch in diesem Fall gemäß der Spezifikation in den unterschiedlichen Dateiinformationen tun.

Implementieren von inkrementellen oder differenziellen Sicherungen

Vor dem Implementieren einer Sicherung sollten die Anforderer Über Informationen darüber verfügen, welche Autoren eine inkrementelle oder differenzielle Sicherung, alle angeforderten Teildateivorgänge, alle differenzierten Dateien und den Sicherungstyp der Dateispezifikation aller anderen Dateien unterstützen.

Nicht unterstützte Writer

Autoren, deren Schema die inkrementelle oder differenzielle Sicherung nicht unterstützt (Autoren, deren Sicherungsschemamaske, wie von IVssExamineWriterMetadata::GetBackupSchema zurückgegeben, enthält VSS_BS_INCREMENTAL , 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 unbedingt, dass die Daten der Autoren nicht an einem inkrementellen oder differenziellen Sicherungsvorgang beteiligt sind. Die Entscheidung darüber, was zu tun ist, liegt jedoch im Ermessen des Antragstellers. Der Anforderer kann eine der folgenden Aktionen ausführen:

  • Sichern Sie keine Dateien, die zu den nicht unterstützten Autoren gehören (geben Sie dies dem Benutzer eindeutig an)
  • Sichern aller Dateien von nicht unterstützten Autoren
  • Führen Sie eine inkrementelle Sicherung mithilfe von Dateisystemdaten und den protokolleigenen Verlaufsprotokollen des Anforderers durch.

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

Unterstützende Autoren

Ein Anforderer muss alle unterschiedlichen Dateien eines Writers (in der Richtigen Reihenfolge) verarbeiten, dann alle partiellen Dateianforderungen verarbeiten und dann die verbleibenden Dateien gemäß ihrem Sicherungstyp der Dateispezifikation (VSS_FILE_SPEC_BACKUP_TYPE) sichern.

  1. Sichern differenzierter Dateien:

    Für Autoren, die Sicherungsvorgänge auf der Grundlage der letzten Änderungsdaten unterstützen (Autoren, deren Sicherungsschemamaske, wie von IVssExamineWriterMetadata::GetBackupSchema zurückgegeben, VSS_BS_LAST_MODIFY enthält), verwendet ein Anforderer die Pfad-, Dateispezifikations- und Rekursionsflaggeninformationen, die von IVssComponent::GetDifferencedFile zurückgegeben werden, um eine Liste von Dateien als Kandidaten für die inkrementelle Sicherung oder Wiederherstellung zu generieren.

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

    Wenn die letzte vom Writer angegebene Änderungszeit nicht zero ist, verwendet der Anforderer sie als Grundlage (anstelle von Dateisysteminformationen oder den eigenen gespeicherten Daten des Anforderers), um zu bestimmen, ob die Datei in die inkrementelle oder differenzielle Sicherung einbezogen werden soll.

    Für instance, wenn die letzte Änderungszeit einer Datei, die vom Writer zurückgegeben wurde, lautete:

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

    Wenn die vom Writer angegebene letzte Änderungszeit null ist, muss der Anforderer Dateisysteminformationen und seine eigenen gespeicherten Daten verwenden, um die Änderungszeit der differenzierten Datei zu bestimmen.

  2. Verwenden von partiellen Dateivorgängen:

    Wenn ein Writer die Sicherung einer Datei mit einem partiellen Dateivorgang angefordert hat, verwendet der Anforderer die Dateioffsetinformationen, um die angegebenen Dateisegmente auf Sicherungsmedien zu speichern. (Weitere Informationen zu partiellen Dateivorgängen finden Sie unter Arbeiten mit partiellen Dateien.

    Wie oben erwähnt, sollte ein Writer eine Datei nicht sowohl als differenzierte Datei als auch als Teilnehmer an einem partiellen Dateivorgang festlegen. Wenn ein Anforderer auf einen solchen Umstand stößt, sollte er einen Writerfehler zurückgeben und protokollieren.

    Ein Anforderer kann sich weiterhin dafür entscheiden, mit der Sicherung der problematischen Writer-Dateien fortzufahren, sollte dies jedoch in diesem Fall gemäß der Spezifikation in den unterschiedlichen Dateiinformationen tun.

  3. Arbeiten mit dem Sicherungstyp der Dateispezifikation:

    Nachdem alle unterschiedlichen Dateien und partiellen Dateivorgänge verarbeitet wurden, verarbeitet der Anforderer jetzt alle verbleibenden Dateien in seinem Sicherungssatz auf Der Grundlage des Sicherungstyps der Dateispezifikation (VSS_FILE_SPEC_BACKUP_TYPE).

    Es gibt drei "Sicherungsanforderungen" Werte der VSS_FILE_SPEC_BACKUP_TYPE-Enumeration , die sich auf differenzielle und inkrementelle Sicherungen auswirken:

    • VSS_FSBT_ALL_BACKUP_REQUIRED
    • VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED

    Es gibt drei "Schattenkopie erforderlich"-Werte:

    • VSS_FSBT_ALL_SNAPSHOT_REQUIRED
    • VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED

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

    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 während einer inkrementellen oder differenziellen Sicherung alle Elemente auf Sicherungsmedien kopiert, wenn ein Dateisatz mit "Sicherung erforderlich" versehen ist, unabhängig davon, wann die Sicherung oder Änderung zuletzt erfolgt ist.

    Standardmäßig werden Dateisätze Komponenten mit einem Sicherungstyp der Dateispezifikation VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED. Wenn also kein Writer den Sicherungstyp der Dateispezifikation nicht explizit festlegt, müssen die Anforderer diese Dateien kopieren, die nicht von partiellen Dateivorgängen verarbeitet werden, oder bestimmte differenzierte Dateien in den meisten Dateisätzen werden in der Regel vollständig auf Sicherungsmedien kopiert.

Sicherungsstempel

Autoren, die Sicherungsstempel (VSS_BS_TIMESTAMP) unterstützen, können sicherungsstempelinformationen generieren, um zukünftige inkrementelle und differenzielle Sicherungs- und Wiederherstellungsvorgänge zu unterstützen.

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

Unterstützende Autoren speichern den Sicherungsstempel im Dokument der Sicherungskomponenten mithilfe der IVssComponent::SetBackupStamp-Methode als Zeichenfolge.

Die Rolle des Anforderers bei der Verarbeitung von Sicherungsstempelinformationen besteht (sofern vorhanden) darin, sie für den Writer verfügbar zu machen, indem er IVssBackupComponents::SetPreviousBackupStamp in einem zukünftigen Sicherungs- oder Wiederherstellungsvorgang aufruft.