Verwendung von Komponenten durch den Anforderer
Neben der Durchführung einer Sicherung oder Wiederherstellung und der Überwachung von Schattenkopien muss ein Anforderer Informationen zu den Komponenten der Autoren verwalten, mit denen er interagiert. Die Komponentenauswahl und der logische Pfad werden verwendet, um Daten aus einer Sicherung ein- oder auszuschließen und zu entscheiden, welche Komponenteninformationen im Dokument Sicherungskomponenten enthalten sind.
Auswahl der Anfordererkomponente während der Sicherung
Bei Sicherungsvorgängen importiert ein Anforderer die Daten der Writer-Metadatenkomponente mithilfe der Methoden IVssBackupComponents::GatherWriterMetadata und IVssBackupComponents::GetWriterMetadata (weitere Informationen finden Sie unter Übersicht über die Sicherungsinitialisierung ).
Nachdem er die Writerinformationen mit der IVssExamineWriterMetadata-Schnittstelle untersucht hat, entscheidet ein Anforderer, welche Autoren gesichert werden sollen und in begrenztem Umfang, welche Komponenten eines bestimmten Writers gesichert werden.
Beim Sichern eines Writers muss ein Anforderer Folgendes ausführen:
- Muss explizit alle Nichtwählbaren eines Writers für Sicherungskomponenten einschließen, ohne dass für Sicherungs-Vorgänger mit IVssBackupComponents::AddComponent ausgewählt werden kann, um die Komponente zum Dokument Sicherungskomponenten hinzuzufügen.
- Kann explizit eine der für Sicherungskomponenten mit IVssBackupComponents::AddComponent ausgewählten Komponenten eines Writers einschließen, um die Komponente dem Dokument "Sicherungskomponenten" hinzuzufügen.
- Wenn eine für Sicherungskomponente auswählbare Komponente einen Komponentensatz definiert, umfasst dessen explizite Aufnahme implizit alle Elemente des Komponentensatzes – unabhängig davon, ob sie für die Sicherung ausgewählt werden können oder nicht. Diese Komponenten werden dem Dokument "Sicherungskomponenten" nicht hinzugefügt.
Wenn sie eine für Sicherungskomponente auswählbare oder eine nicht für Sicherungskomponenten auswählbare Komponente hinzufügen, ohne dass für Sicherungsvorläufer ausgewählt werden kann, gibt ein Anforderer Folgendes an:
- Die instance des Writers, der die Komponente verwaltet
- Der Klassenbezeichner des Writers
- Der logische Pfad der Komponente (der null sein kann)
- Name der Komponente
Wenn eine Komponente nicht mit der Spezifikation übereinstimmt, wird ein Fehler zurückgegeben.
Wenn eine solche Komponente vorhanden ist, erstellt VSS eine IVssComponent-Schnittstelle für die Komponente im Dokument Sicherungskomponenten. Auf diese Informationen kann der Schreiber und Anforderer zugreifen und änderbar sein. Bei einer auswählbaren Komponente, die einen Komponentensatz definiert, beschreibt sie nicht nur die Eigenschaften der Komponente, sondern auch alle darin enthaltenen Unterkomponenten.
Informationen zu implizit hinzugefügten Komponenten sind im Dokument Sicherungskomponenten nicht verfügbar. Darüber hinaus sind im Dokument Sicherungskomponenten keine Dateiinformationen verfügbar. Um diese Informationen zu erhalten, muss der Anforderer die Writer-Metadatendokumente (die bereits gelesen wurden) im Kontext der ausgewählten gespeicherten Komponenten im Dokument Sicherungskomponenten untersuchen.
Auswahl der Anforderungskomponente während der Wiederherstellung
Bei Wiederherstellungsvorgängen sollte ein Anforderer keine Komponenteninformationen von den autoren importieren, die derzeit über IVssBackupComponents::GatherWriterMetadata auf dem System aktiv sind, da der Zustand der derzeit ausgeführten Prozesse nicht unbedingt den Zustand der Prozesse widerspiegelt, als eine Sicherung durchgeführt wurde.
Es sollte weiterhin ein Identify-Ereignis über IVssBackupComponents::GatherWriterMetadata generieren, um ein Identify-Ereignis zu erstellen und zu bestimmen, welche Autoren sich derzeit auf dem System befinden und ihre status.
Der Anforderer ruft das gespeicherte Dokument der Sicherungskomponenten während der Initialisierung sowie gespeicherte Writer-Metadatendokumente ab (weitere Informationen finden Sie unter Übersicht über die Wiederherstellungsinitialisierung ).
Die Einbeziehung von Komponenten während der Sicherung ist weitgehend identisch mit der für die Wiederherstellung, mit der Ausnahme, dass Sie für die Wiederherstellung zusammen mit dem logischen Pfad auswählen müssen – nicht für die Sicherung auswählbar.
Es gibt jedoch einige Unterschiede:
- Wenn eine Komponente bereits während der Sicherung explizit in das Dokument Sicherungskomponenten eingeschlossen wurde und sie für die Wiederherstellung (entweder explizit oder implizit) enthalten ist, wird IVssBackupComponents::SetSelectedForRestore verwendet, um sie explizit zum Dokument sicherungskomponenten für die Wiederherstellung hinzuzufügen.
- Wenn eine Komponente implizit in die Sicherung eingeschlossen wurde und für die Wiederherstellung nicht ausgewählt werden kann, ohne dass für Wiederherstellungsvorläufer ausgewählt werden kann – was im Sicherungsfall die Notwendigkeit einer expliziten Aufnahme bedeuten würde –, wird die Komponente nicht explizit eingeschlossen (d. h. sie wird nicht dem Dokument der Sicherungskomponenten mithilfe von IVssBackupComponents::SetSelectedForRestore hinzugefügt). Eine solche Komponente sollte als implizit für die Wiederherstellung ausgewählt betrachtet werden.
- Von diesen Komponenten, die implizit für die Sicherung ausgewählt wurden (unabhängig davon, ob diese Komponente für die Sicherung ausgewählt wurde oder nicht), können nur diejenigen, die für die Wiederherstellung ausgewählt werden können, dem Dokument Sicherungskomponenten mithilfe von IVssBackupComponents::AddRestoreSubcomponent hinzugefügt werden.
- Für Wiederherstellungskomponenten auswählbar kann ein Komponentensatz für die Wiederherstellung definiert werden – genau wie für Sicherungskomponenten. Diese für die Wiederherstellungskomponente auswählbare Komponente definiert dann diesen Komponentensatz für den Wiederherstellungsvorgang.
Ein Writer ohne Komponenten, die vor der Generierung eines PreRestore-Ereignisses explizit für die Wiederherstellung ausgewählt wurden, empfängt keine VSS-Ereignisse.
Anforderer und Autoren können über die IVssComponent-Schnittstelle auf gespeicherte Komponenteninformationen zugreifen. Über die IVssComponent-Schnittstelle können Autoren einige Einstellungen der Komponenten ändern, die explizit im Dokument Sicherungskomponenten enthalten sind, um eine Wiederherstellung zu unterstützen (z. B. das Wiederherstellungsziel). Wenn ein Komponentensatz definiert wird, werden Writeränderungen einer explizit eingeschlossenen Komponente an ihre Unterkomponenten weitergegeben. Darüber hinaus bietet die Schnittstelle einen Mechanismus zum Übergeben von Informationen über Erfolg und Fehler der Wiederherstellung zwischen Writer und Anforderer.
Wie während der Sicherung sind im Dokument der Sicherungskomponenten selbst nicht genügend Informationen vorhanden, um die Wiederherstellung zu implementieren. Auch hier müssen die Writer-Metadatendokumente Informationen zu den tatsächlichen Pfaden der wiederherzustellenden Dateien bereitstellen und ermitteln, welche nicht auswählbaren Komponenten Teil des Komponentensatzes für auswählbare Komponenten sind und daher wiederhergestellt werden müssen.
Informationen zu den Auswahltypen und deren Verwendung finden Sie unter Arbeiten mit Auswahlfähigkeit und logischen Pfaden .
Verwendung der Dokumentinformationen der Writer-Komponente durch den Anforderer
Jede Komponente wird durch die Writer-Klassen-ID ihres übergeordneten Writers, ihres Namens und ihres logischen Pfads eindeutig identifiziert.
Der Anforderer kann die IVssWriterComponentsExt-Schnittstelle verwenden, die von der IVssBackupComponents-Methode::GetWriterComponents zurückgegeben wird, um Informationen zu jeder gespeicherten Komponente abzurufen.
Der Name und der logische Pfad der Komponente (unter anderem) können über die IVssComponent-Schnittstelle gefunden werden, die von IVssWriterComponentsExt::GetComponent zurückgegeben wird.
Hinweis
Während der Wiederherstellungsphase sollte der Anforderer IVssWriterComponentsExt::GetComponent oder IVssWriterComponentsExt::GetComponentCount nur aufrufen, nachdem der Aufruf von IVssBackupComponents::P reRestore zurückgegeben wurde, um dem Writer Zeit zum Aktualisieren des Dokuments der Sicherungskomponenten zu ermöglichen. Ein Beispiel für ein solches Update wäre das Ändern des Wiederherstellungsziels.
Informationen zum übergeordneten Writer jeder gespeicherten auswählbaren Komponente finden Sie mithilfe von IVssWriterComponentsExt::GetWriterInfo.
Mit diesen Informationen können die Writer-Metadatendokumente abgefragt und das übereinstimmende Dokument identifiziert werden. Anschließend kann der Anforderer mithilfe des logischen Pfads die abhängigen nicht auswählbaren Komponenten für jede auswählbare Komponente identifizieren, d. h. alle Elemente des Komponentensatzes der auswählbaren Komponente identifizieren.
Mithilfe der IVssExamineWriterMetadata-Schnittstelle verfügt der Anforderer jetzt über vollständige Komponenteninformationen – einschließlich der Pfadspezifikation (von der IVssWMComponent-Schnittstelle ) – sowohl für auswählbare als auch für nicht auswählbare Komponenten, die er sichern oder wiederherstellen muss.
Dies ist einer der Gründe, warum es für einen Anforderer wichtig ist, sowohl den Zustand des eigenen Sicherungskomponentendokuments als auch die Writer-Metadatendokumente der Von ihm gesicherten Autoren zu speichern.
Ausführlichere Informationen finden Sie unter Arbeiten mit Auswählbarkeit und logischen Pfaden .