Verwendung von Komponenten durch den Anfordernden
Zusätzlich zum Durchführen einer Sicherung oder Wiederherstellung und zum Überwachen von Schattenkopien muss ein An anfordernde Benutzer Informationen zu den Komponenten der Writer verwalten, mit denen er interagiert. Die Komponentenauswahl und der logische Pfad werden verwendet, um Daten in eine Sicherung ein- oder auszuschließen und zu entscheiden, welche Komponenteninformationen im Dokument Sicherungskomponenten enthalten sind.
Auswahl der An anfordernden Komponente während der Sicherung
Während Sicherungsvorgängen importiert eine Anfordernde Writer-Metadatenkomponentendaten mithilfe der Methoden IVssBackupComponents::GatherWriterMetadata und IVssBackupComponents::GetWriterMetadata (weitere Informationen finden Sie unter Übersicht über die Sicherungsin initialisierung).
Nachdem die Writerinformationen mit der IVssExwriterMetadata-Schnittstelle untersucht wurden, entscheidet ein An anfordernde Benutzer, welche Writer es sichern soll, und in begrenztem Umfang, welche Komponenten eines bestimmten Writers er sichern wird.
Beim Sichern eines Writers:
- Muss explizit alle nicht auswählbaren Komponenten eines Writers für Sicherungskomponenten enthalten, ohne für Sicherungsvorderer mithilfe von IVssBackupComponents::AddComponent ausgewählt werden zu können, um die Komponente zum Sicherungskomponentendokument hinzuzufügen.
- Kann explizit eines writer-Element enthalten, das für Sicherungskomponenten ausgewählt werden kann, indem IVssBackupComponents::AddComponent verwendet wird, um die Komponente dem Sicherungskomponentendokument hinzuzufügen.
- Wenn eine für die Sicherungskomponente auswählbare Komponente einen Komponentensatz definiert,schließt die explizite Einbeziehung implizit alle Elemente des Komponentensets ein – unabhängig davon, ob sie für die Sicherung ausgewählt werden können oder nicht. Diese Komponenten werden dem Sicherungskomponentendokument nicht hinzugefügt.
Beim Hinzufügen einer auswählbaren Sicherungskomponente oder einer nicht auswählbaren für Sicherungskomponenten, ohne dass sicherungserfahrene Elemente dem Sicherungskomponentendokument ausgewählt werden können, gibt ein An anfordernder Benutzer Folgendes an:
- Die Instanz des Writer, der die Komponente verwalten soll.
- Der Klassenbezeichner des Writers
- Der logische Pfad der Komponente (kann NULL sein)
- Name der Komponente
Wenn eine Komponente nicht der Spezifikation entspricht, wird ein Fehler zurückgegeben.
Wenn eine solche Komponente vorhanden ist, erstellt VSS eine IVssComponent-Schnittstelle für die Komponente im Dokument Sicherungskomponenten. Diese Informationen sind für den Writer und die Anfordernde zugänglich und änderbar. Bei einer auswählbaren Komponente, die einen Komponentensatz definiert,werden nicht nur die Eigenschaften der Komponente, sondern auch alle in ihr enthaltenen Unterkomponenten beschrieben.
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 Anfordernde die Writer-Metadatendokumente (die bereits gelesen wurden) im Kontext der ausgewählten gespeicherten Komponenten im Sicherungskomponentendokument untersuchen.
Auswahl der anfordernden Komponente während der Wiederherstellung
Bei Wiederherstellungsvorgängen sollte ein An anfordernder Benutzer keine Komponenteninformationen von den Writern importieren, die derzeit im System über IVssBackupComponents::GatherWriterMetadataaktiv sind, da der Status der derzeit ausgeführten Prozesse nicht notwendigerweise den Zustand der Prozesse wiedergelangt, als eine Sicherung erstellt wurde.
Es sollte weiterhin ein Identify-Ereignis über IVssBackupComponents::GatherWriterMetadatagenerieren, um sowohl ein Identify-Ereignis zu erstellen als auch um zu bestimmen, welche Writer sich derzeit im System befinden und deren Status.
Der Anfordernde ruft das gespeicherte Sicherungskomponentendokument während seiner Initialisierung sowie gespeicherte Writer-Metadatendokumente ab (weitere Informationen finden Sie unter Übersicht über die Wiederherstellungsin initialisierung).
Die Einbeziehung von Komponenten während der Sicherung ist größtenteils identisch mit der für die Wiederherstellung, mit der Ausnahme, dass Sie die Wiederherstellung zusammen mit dem logischen Pfad in Betracht ziehen müssen – nicht für die Sicherung auswählbar.
Es gibt jedoch einige Unterschiede:
- Wenn eine Komponente während der Sicherung bereits explizit in das Sicherungskomponentendokument eingeschlossen wurde und für die Wiederherstellung (explizit oder implizit) enthalten ist, wird IVssBackupComponents::SetSelectedForRestore verwendet, um sie explizit dem Sicherungskomponentendokument 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 die Vorgängerelemente für die Wiederherstellung ausgewählt werden können – was im Fall der Sicherung die Notwendigkeit einer expliziten Einbeziehung bedeuten würde –, wird die Komponente nicht explizit eingeschlossen (d. h., sie wird dem Sicherungskomponentendokument nicht mithilfe von IVssBackupComponents::SetSelectedForRestorehinzugefügt). Eine solche Komponente sollte als implizit für die Wiederherstellung ausgewählt betrachtet werden.
- Von den Komponenten, die implizit für die Sicherung ausgewählt wurden (unabhängig davon, ob diese Komponente für die Sicherung ausgewählt werden konnte) können nur die Komponenten, die für die Wiederherstellung ausgewählt werden können, dem Sicherungskomponentendokument mithilfe von IVssBackupComponents::AddRestoreSubcomponent hinzugefügt werden.
- Für Wiederherstellungskomponenten auswählbar kann ein Komponentensatz für die Wiederherstellung definiert werden – genau wie bei 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, erhält keine VSS-Ereignisse.
Anfordernde und Writer können über die IVssComponent-Schnittstelle auf gespeicherte Komponenteninformationen zugreifen. Über die IVssComponent-Schnittstelle können Writer einige der Einstellungen ihrer Komponenten ändern, die explizit im Dokument sicherungskomponenten enthalten sind, um eine Wiederherstellung zu unterstützen (z. B. das Wiederherstellungsziel ). Wenn sie einen Komponentensatz definiert, werden Writeränderungen einer explizit eingeschlossenen Komponente an ihre Unterkomponenten weiterversetzt. Darüber hinaus bietet die -Schnittstelle einen Mechanismus zum Übergeben von Informationen zum Wiederherstellungserfolg und -fehler zwischen Writer und Anfordernde.
Wie bei der Sicherung sind im Sicherungskomponentendokument selbst nicht genügend Informationen enthalten, um die Wiederherstellung zu implementieren. Auch hier müssen die Writer-Metadatendokumente Informationen zu den tatsächlichen Pfaden der wiederherzustellenden Dateien bereitstellen und feststellen, welche nicht auswählbaren Komponenten Teil des Komponentensets der auswählbaren Komponenten sind und daher wiederhergestellt werden müssen.
Informationen zu den Auswählbarkeitstypen und deren Verwendung finden Sie unter Working with Selectability and Logical Paths (Arbeiten mit Auswählbarkeit und logischen Pfaden).
Verwenden von Dokumentinformationen der Writer-Komponente durch den Anfordernden
Jede Komponente wird eindeutig durch die Writer-Klassen-ID ihres übergeordneten Writers, ihren Namen und ihren logischen Pfad identifiziert.
Der Anfordernde kann die IVssWriterComponentsExt-Schnittstelle verwenden, die von der IVssBackupComponents::GetWriterComponents-Methode zurückgegeben wird, um Informationen zu jeder gespeicherten Komponente zu erhalten.
Der Name und logische Pfad der Komponente (unter anderem) finden Sie über die IVssComponent-Schnittstelle, die von IVssWriterComponentsExt::GetComponentzurückgegeben wird.
Hinweis
Während der Wiederherstellungsphase sollte der Anfordernde IVssWriterComponentsExt::GetComponent oder IVssWriterComponentsExt::GetComponentCount erst aufrufen, nachdem der Aufruf von IVssBackupComponents::P reRestore zurückgegeben wurde, um dem Writer Zeit zum Aktualisieren des Sicherungskomponentendokuments zu geben. 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 An anfordernde Benutzer mithilfe des logischen Pfads die abhängigen, nicht auswählbaren Komponenten für jede auswählbare Komponente identifizieren, d. b. alle Member des Komponentensets der auswählbaren Komponente identifizieren.
Mithilfe der IVssExerklärwriterMetadata-Schnittstelle verfügt der Anfordernde jetzt über vollständige Komponenteninformationen – einschließlich 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 ein Grund, warum es für einen An anfordernden wichtig ist, sowohl den Zustand seines eigenen Sicherungskomponentendokuments als auch die Writer-Metadatendokumente der zu sichernden Writer zu speichern.
Ausführlichere Informationen finden Sie unter Working with Selectability and Logical Paths (Arbeiten mit Auswählbarkeit und logischen Pfaden).