Definition von Komponenten nach Writern

Komponenten werden von Writern in ihrem Writer Metadata Document als Reaktion auf ein Identify-Ereignis zu Beginn eines Sicherungsvorgangs definiert und instanziiert (siehe Übersicht über die Sicherungsinitialisierung),wenn das Writer Metadata Document aufgefüllt wird.

Beim Erstellen einer Komponente in ihrem Writer Metadata Document mit IVssCreateWriterMetadata und IVssCreateWriterMetadata::AddComponentmuss ein Writer Folgendes angeben:

  • Gibt an, ob die Komponente für die Sicherung ausgewählt werden kann.
  • Ein Komponententyp
  • Ein Komponentenname (der nicht nur innerhalb einer bestimmten Writerinstanz, sondern über alle Writerinstanzen hinweg eindeutig sein muss)
  • Gibt an, ob der Komponente writerspezifische Metadaten zugeordnet sind.
  • Gibt an, ob der Writer nach einer erfolgreichen Sicherung eine Benachrichtigung erfordert.

Writer können optional Folgendes angeben:

  • Der logische Pfad einer Komponente (der nicht nur innerhalb einer bestimmten Writerinstanz, sondern über alle Writerinstanzen hinweg eindeutig sein muss)
  • Eine Komponentenbeschreibung (oder Beschriftung)
  • Ein Symbol, das mit GUIs verwendet werden soll, um die Komponente anzugeben

Es ist nicht erforderlich, dass eine Komponente tatsächlich Dateien enthält. Diese Art von leerer oder "Dummy"-Komponente kann beim Organisieren von Komponenten nützlich sein. Eine solche Komponente kann verwendet werden, um einen Komponentensatz und die Komponente eines Writers zu definieren (siehe Logisches Pfading von Komponenten).

Einrichten der Komponentenorganisation

Das Festlegen der Selektivität einer Komponente (ihre Auswählbarkeit für die Sicherungund ihre Auswählbarkeit für die Wiederherstellung)und ihre logischen Pfade ermöglichen es einem Writer, bestimmte Komponenten in einen Sicherungs- oder Wiederherstellungsvorgang einzubeziehen oder optional zu machen und Komponenten in Komponentensätzen zu gruppieren, wobei eine auswählbare Komponente als Einstiegspunkt für die gesamte Gruppe fungiert.

Die Mitgliedschaft in diesen Gruppierungen bestimmt, welche Komponenten während Sicherungs- und Wiederherstellungsvorgängen verwendet werden. Wenn "auswählbar" verwendet wird, um für den Sicherungsvorgang wieder auswählbar und für den Wiederherstellungsvorgang auswählbar zu sein, sollten Entwickler dies verstehen:

  • Wenn komponenten, die von einem bestimmten Writer verwaltet werden, gesichert werden, muss ein Anforderer explizit alle nicht auswählbaren Komponenten ohne auswählbare Vorgänger in ihren logischen Pfad zum Sicherungskomponentendokument einschließen und diese Komponenten als Gruppe sichern und wiederherstellen.
  • Ein Anforderer kann während Sicherungs- und Wiederherstellungsvorgängen explizit auswählbare Komponenten zum Sicherungskomponentendokument hinzufügen. Nach dem Hinzufügen muss die Komponente gesichert oder wiederhergestellt werden.
  • Wenn eine Komponente ausgewählt werden kann, bilden die Komponente und alle zugehörigen Unterkomponenten (wie durch logische Pfade definiert) einen Komponentensatz, der als einzelne Einheit behandelt werden kann, die optional an Sicherungs- und Wiederherstellungsvorgängen beteiligt sein kann.
  • Ein Anforderer fügt dem Sicherungskomponentendokument während Sicherungs- und Wiederherstellungsvorgängen nie explizit eine nicht auswählbare Komponente mit auswählbaren Vorgängern hinzu, einer Unterkomponente in einem Komponentensatz. Diese Komponenten müssen implizit eingeschlossen werden, wenn ihr auswählbarer Vorgänger explizit hinzugefügt wird. In diesem Fall müssen sie gesichert oder wiederhergestellt werden (siehe Verwenden von Komponenten durch den Anfordernden).
  • Eine auswählbare Komponente mit einem auswählbaren Vorgänger ist immer noch eine Unterkomponente (ein Member eines Komponentensatzes) und kann implizit eingeschlossen werden, wenn ihr auswählbarer Vorgänger explizit in den Vorgang eingeschlossen wird. In diesem Fall werden die zugehörigen Informationen nicht dem Dokument sicherungskomponenten hinzugefügt. Wenn der auswählbare Vorgänger nicht im Vorgang enthalten ist, kann die Komponente explizit für die Aufnahme in den Vorgang ausgewählt werden. In diesem Fall sind ihre Informationen im Sicherungskomponentendokument enthalten.
  • Eine Teilkomponente, die implizit in einer Sicherung enthalten ist, kann explizit in einen Wiederherstellungsvorgang eingeschlossen werden, unabhängig vom Status eines auswählbaren Vorgängers, wenn er für die Wiederherstellung ausgewählt werden kann. Für alle Während eines Wiederherstellungsvorgangs enthaltenen Unterkomponenten, die für die Wiederherstellung ausgewählt werden können, müssen die zugehörigen Informationen dem Sicherungskomponentendokument hinzugefügt werden.
  • Ein Writer, dem vor der Generierung von PrepareForBackup- und PreRestore-Ereignissen keine Komponente explizit zum Sicherungskomponentendokument hinzugefügt wurde, empfängt keine weiteren VSS-Ereignisse.

Weitere Informationen finden Sie unter Working with Selectability and Logical Paths.

Hinzufügen von Dateien zu einer Komponente

Eine Komponente enthält Dateiinformationen in Form eines Dateisatzes, der Folgendes enthält:

  • Ein Stammverzeichnis der Dateien in der Komponente.
  • Eine Dateispezifikation für die Dateien in der Komponente.
  • Ein Flag, das angibt, ob die Spezifikation der Komponente rekursiv ist.

Abhängig vom Komponententyp, bei dem es sich um eine Datenbank oder eine Dateigruppe handeln kann, und (im Fall von Datenbankkomponenten), ob es sich bei den zu ladenden Dateien um Daten- oder Protokolldateien handelt, ruft ein Writer IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFilesoder IVssCreateWriterMetadata::AddDatabaseLogFiles auf, um einen Dateisatz hinzuzufügen.

Wenn Sie diese Funktionen verwenden, sollten Sie die Dateien, die dem Dateisatz hinzugefügt werden sollen, wie folgt angeben:

  • wszPath: Dies ist der Pfad zu dem Verzeichnis, das die Dateien enthält, die dem Dateisatz hinzugefügt werden sollen. Wenn der bRecursive-Parameter auf TRUE festgelegt ist, gibt der wszPath-Parameter eine Hierarchie von Verzeichnissen an, die rekursiv durchlaufen werden sollen, und alle Verzeichnisse, einschließlich leerer Verzeichnisse, sollten neu erstellt werden.
  • wszFilespec: Diese Zeichenfolge gibt die Dateien in jedem Verzeichnis an, die dem Dateisatz hinzugefügt werden sollen.

Angenommen, die folgende Verzeichnisstruktur ist vorhanden:

C: \\ Directory1 \\File1.txt C: \\ Directory1 \\File2.txt C: \\ Directory1 \\ Directory2 \\File1.txt C: \\ Directory1 \\ Directory2 \\File2.txt C: \\ Directory1 \\ Directory3\\

Wenn der Writer "C: \ Directory1" für wszPath,"File1. * " für wszFilespec und true für bRecursive angibt, sollte der Anforderer die folgenden Dateien enthalten:

C: \\ Directory1 \\File1.txt C: \\ Directory1 \\ Directory2 \\File1.txt

Wenn der Writer stattdessen "C: \ Directory1" für wszPath, * " " für wszFilespec und TRUE für bRecursive angibt, sollte der Anforderer die folgenden Dateien enthalten:

C: \\ Directory1 \\File1.txt C: \\ Directory1 \\File2.txt C: \\ Directory1 \\ Directory2 \\File1.txt C: \\ Directory1 \\ Directory2 \\File2.txt

Wenn der Writer "C: \ Directory1" für wszPath, * " " für wszFilespec und false für bRecursive angibt, sollte der Anforderer die folgenden Dateien enthalten:

C: \\ Directory1 \\File1.txt C: \\ Directory1 \\File2.txt

In allen vorherigen Beispielen sollte das leere Verzeichnis C: Directory1 Directory3 neu erstellt werden, wenn der Writer true für bRecursive angibt. \ \ \

Für einen Dateisatz, der einer Dateigruppenkomponente hinzugefügt wird, hat ein Writer die Möglichkeit, einen alternativen Pfad hinzuzufügen, wenn sich dateien, die sich derzeit auf dem Datenträger befinden, nicht in dem befinden, was der Writer als den geeigneten oder Standardspeicherort betrachten würde. In diesen Fällen enthält die Definition des Pfads des Dateisatzes den normalen Speicherort der Dateien und den Speicherort, an dem Dateien wiederhergestellt werden sollen, während der alternative Pfad den aktuellen Speicherort der zu sichernden Dateien enthält.

Alle Dateien im Dateisatz müssen zum Zeitpunkt der Sicherung vorhanden sein. Anforderer müssen davon ausgehen, dass alle im Dateisatz aufgeführten Dateien für die Sicherung erforderlich sind, und die Sicherung schlägt fehl, wenn Dateien fehlen. Beachten Sie, dass bei Angabe von * " " " für den wszFilespec-Parameter mit 0 (null) oder mehr Dateien übereinstimmen kann.

Beachten Sie, dass attribute des Writer Metadata Document als alternative Speicherortzuordnungen, explizit eingeschlossene und ausgeschlossene Dateien und Wiederherstellungsmethoden auf Writerebene und nicht auf Komponentenebene festgelegt werden. (Weitere Informationen finden Sie unter Arbeiten mit dem Writer Metadata Document.)

Komponentendefinition für Sicherungs- und Wiederherstellungsvorgänge

Sowohl Wiederherstellungs- als auch Sicherungsvorgänge generieren notwendigerweise ein Identify-Ereignis,und für Sicherungen und Wiederherstellungen wird es von der gleichen CVssWriter::OnIdentify-Methode verarbeitet.

Bei Sicherungsvorgängen verwenden Anforderer die von den CVssWriter::OnIdentify-Methoden eines Writers zurückgegebenen Informationen, um zu bestimmen, welche Writer auf dem System vorhanden sind, und um dann zu bestimmen, welche ihrer Dateien gesichert werden sollen.

Bei Wiederherstellungsvorgängen werden die vom CVssWriter::OnIdentify-Ereignis eines Writers zurückgegebenen Informationen nur verwendet, um die Identität und den Status von Writern festzulegen, die derzeit im System vorhanden sind. Die während einer Wiederherstellung generierten Dateispezifikationsinformationen werden nicht verwendet. Stattdessen werden Zum Sicherungszeitpunkt gespeicherte WriterMetadatendokumente verwendet, um diese Daten abzurufen.

Nach der Generierung während eines Sicherungsvorgangs werden die Writer-Komponenteninformationen zusammen mit den restlichen Writer-Informationen gespeichert, um abgerufen zu werden, um Wiederherstellungsvorgänge zu unterstützen. In der Regel ist der Anforderer dafür verantwortlich, diese Informationen zu speichern.