Übersicht über die Vorbereitung auf die Wiederherstellung
Bei der Vorbereitung einer Wiederherstellung verwendet ein Anforderer die gespeicherten Writer Metadata Documents in Verbindung mit seinem eigenen abgerufenen Sicherungskomponentendokument, um zu bestimmen, was wiederhergestellt werden soll. Weitere Informationen finden Sie unter Übersicht über die Verarbeitung einer Wiederherstellung unter VSS.
Nach der Auswahl der wiederherzustellenden Komponenten greifen Writer, die derzeit auf dem System ausgeführt werden, auf das Sicherungskomponentendokument des Anfordernden zu. Writer verwenden diesen Zugriff, um anzugeben, wie die Ausführung von Diensten aufgrund der Wiederherstellung minimal erschwert werden kann.
Nachdem dies abgeschlossen ist, verfügt der Anforderer über genügend Informationen, um zu bestimmen, welche Dateien wiederhergestellt werden müssen und wo und wie sie wiederhergestellt werden sollen. (Weitere Informationen finden Sie unter Generieren eines Wiederherstellungssatzes.)
Die folgende Tabelle zeigt die Abfolge von Aktionen und Ereignissen, die für die Vorbereitung auf einen Wiederherstellungsvorgang erforderlich sind.
| Anfordereraktion | Ereignis | Writer-Aktion |
|---|---|---|
| Rufen Sie Informationen aus dem Sicherungskomponentendokument zu den Komponenten ab, die explizit im Sicherungsvorgang enthalten sind (siehe IVssBackupComponents::GetWriterComponents) Überprüfen Sie abgerufene Writer-Metadatendokumente, um Details zu diesen Komponenten abzurufen, die explizit in die Sicherung eingeschlossen sind, sowie alle implizit enthaltenen Unterkomponenten. (Siehe IVssEx csvWriterMetadata, IVssWMComponent.) |
Keine | Keine |
| Wählen Sie komponenten und komponentensätze aus, die wiederhergestellt werden sollen (siehe IVssBackupComponents::SetSelectedForRestore und IVssBackupComponents::AddRestoreSubcomponent.) | Keine | Keine |
| Der Anforderer ermöglicht dem Writer das Aktualisieren des Sicherungskomponentendokuments und kann dem Writer optional spezielle Wiederherstellungsoptionen mitteilen. (Siehe IVssBackupComponents::SetRestoreOptions, IVssBackupComponents::AddNewTargetund IVssBackupComponents::P reRestore.) | PreRestore | Der Writer bestimmt die Teilnahme an der Wiederherstellung, bereitet dateien für die Wiederherstellung vor und ändert bei Bedarf optional das Sicherungskomponentendokument. (Siehe CVssWriter::OnPreRestore, IVssComponent, IVssComponent::IsSelectedForRestore, IVssComponent::GetRestoreOptions, IVssComponent::SetRestoreTarget, IVssComponent::SetRestoreMetadata, IVssComponent::AddDirectedTarget.) |
| Der Anfordernde wartet auf Writer, um das PreRestore-Ereignis mit IVssAsynczu behandeln. Außerdem sollte der Writerstatus überprüft werden. (Siehe IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus.) | Keine | Keine |
Aktionen des Anfordernden während der Wiederherstellungsvorbereitungen
Um zu bestimmen, welche Komponenten kandidaten für die Wiederherstellung sind, muss der Anforderer folgende Schritte ausführen:
- Richten Sie die Komponente und die Komponentensatzstruktur ein, die zum Erstellen der Sicherung verwendet werden.
- Überprüfen Sie die Selektivitätder Komponenten für die Wiederherstellung.
- Verwenden Sie Auswahlrichtlinien(Arbeiten mit Der Auswählbarkeit für Wiederherstellung und Unterkomponenten), um die einzufügenden Komponenten auszuwählen.
- Verwenden Sie Komponentendateisatzinformationen, um zu bestimmen, welche Dateien auf dem Sicherungsmedium wiederhergestellt werden müssen.
Hierzu muss der Anforderer explizit eingeschlossene Komponenten im gespeicherten Sicherungskomponentendokument untersuchen. Diese Komponenteninformationen sind auf Writer-by-Writer-Basis mithilfe von IVssBackupComponents::GetWriterComponentsverfügbar, die Instanzen der IVssWriterComponentsExt-Schnittstelle zurückgibt, aus der sowohl Writerinformationen als auch Instanzen der IVssComponent-Schnittstelle abgerufen werden können.
Wie an anderer Stelle (Verwendung von Komponenten durch den Anforderer)erwähnt, enthalten das Sicherungskomponentendokument und die IVssComponent-Schnittstelle nicht genügend Informationen, um die Sicherung zu unterstützen. Daher muss der Anforderer das entsprechende gespeicherte Writer Metadata Document mithilfe von IVssExwriterMetadata untersuchen (siehe Writer Identification Information).
Die Anzahl der komponenten, die jeder Writer verwaltet, wird von IVssExwriterMetadata::GetFileCountszurückgegeben. Der Anforderer kann dann IVssExwriterMetadata::GetComponent verwenden, um eine IVssWMComponent-Schnittstelle für jede Komponente abzurufen, die ein Writer verwaltet.
Durch Untersuchen der Selektivität der Komponenten für Sicherungen und logische Pfade (siehe Arbeiten mit Selektivität und logischen Pfaden)kann ein Anforderer die Komponenten identifizieren, die Sicherungszeit-Komponentensätze definiert haben (explizit eingeschlossene Komponenten) und die Unterkomponentenmember dieser Sätze (implizit eingeschlossene Komponenten).
Anforderer geben über das Sicherungskomponentendokument an, ob eine Komponente explizit wiederhergestellt werden soll, indem sie entweder IVssBackupComponents::SetSelectedForRestore oder IVssBackupComponents::AddRestoreSubcomponentverwenden. Die Auswahl der Methode hängt davon ab, wie die Komponente ursprünglich gesichert wurde, und von ihrer Auswahl für die Wiederherstellung. Diese Komponenten, die explizit für die Wiederherstellung eingeschlossen werden, bestimmen andere Komponenten, die implizit enthalten sind (details finden Sie unter Working with Selectability for Restore and Subcomponents (Arbeiten mit Auswahlfähigkeit für Wiederherstellungs- und Unterkomponenten).
Ein Anforderer kann explizit keine der Derzeit ausgeführten Writerkomponenten für die Wiederherstellung mit IVssBackupComponents::SetSelectedForRestore oder IVssBackupComponents::AddRestoreSubcomponenteinschließen. In diesem Fall empfängt dieser Writer für den Rest des Wiederherstellungsvorgangs keine VSS-Ereignisse.
Die explizite Verwendung von IVssBackupComponents::SetSelectedForRestore oder IVssBackupComponents::AddRestoreSubcomponent zum Auswählen einer Komponente eines Writers, der derzeit nicht ausgeführt wird, gibt einen _ VSS E _ OBJECT NOT _ _ FOUND-Fehler zurück. Informationen zum Wiederherstellen der Daten fehlender Writer finden Sie unter Wiederherstellungen ohne Writer-Beteiligung.
Damit ein Writer vollständige Informationen zur Aktion erhalten kann, können writerspezifische Wiederherstellungsoptionen und Der Hinweis auf eine inkrementelle Wiederherstellung durch Aufrufe von IVssBackupComponents::SetRestoreOptions bzw. IVssBackupComponents::SetAdditionalRestoresan die Writer gesendet werden.
An diesem Punkt hat ein Anforderer seine Vorbereitung abgeschlossen und generiert ein PreRestore-Ereignis, indem er IVssBackupComponents::P reRestoreaufruft, sodass Writer sich auf die tatsächliche Wiederherstellung vorbereiten können.
Writer-Aktionen während der Wiederherstellungsvorbereitungen
Die Writervorbereitung für den Wiederherstellungsvorgang erfolgt, wenn das PreRestore-Ereignis mit der virtuellen Methode CVssWriter::OnPreRestorebehandelt wird. Die Standardimplementierungen geben einfach zurück, ohne eine Aktion zu ergreifen. Writer können die Standardimplementierungen überschreiben, um mehr Kontrolle über folgende Aufgaben zu haben:
- Überschreiben von Wiederherstellungsmethoden mit Wiederherstellungszielen
- Definieren von gerichteten Zielen
- Erstellen von Fehlermeldungen und zusätzlichen Daten
- Bereitstellen von Sicherungsstempelinformationen
Der Ereignishandler CVssWriter::OnPreRestore empfängt eine Instanz von IVssWriterComponents,von der IVssComponent-Schnittstellen für die Komponenten erhalten werden können, die während der Sicherung explizit im Sicherungskomponentendokument enthalten sind.
Informationen zu Unterkomponenten, die implizit in Sicherungsvorgänge eingeschlossen und explizit in Wiederherstellungen eingeschlossen werden, indem eine Instanz der IVssComponent verwendet wird, die der Komponente entspricht, die den Sicherungskomponentensatzdefiniert hat.
Die IVssComponent::IsSelectedForRestore-Methode wird verwendet, um zu bestimmen, ob eine explizit für die Sicherungskomponente enthaltene wiederhergestellt werden soll.
Um zu bestimmen, ob eine Sicherungsunterkomponente explizit in die Wiederherstellung eingeschlossen wurde, verwenden Writer IVssComponent::GetRestoreSubcomponent.
Der Writer sollte den Dateisatz in jeder Komponente untersuchen und ermitteln, ob er Maßnahmen ergreifen muss, um die Wiederherstellung zu unterstützen. Der Writer muss auswerten, ob die aktuellen Dateien überschrieben werden sollen oder ob eine Wiederherstellung an neuen Speicherorten erforderlich ist. Aktionen können Folgendes umfassen:
- Abrufen und Agieren auf writer- oder anfordererspezifische Optionen für Wiederherstellungsvorgänge (siehe IVssComponent::GetRestoreOptions)
- Schließen und Schreiben aller derzeit geöffneten Dateien
- Aktualisieren des Wiederherstellungsziels (z. B. zum Erzwingen der Wiederherstellung an einer alternativen Speicherortzuordnung). Siehe IVssComponent::SetRestoreTarget.
- Kommunikation mit dem Anfordernden über private Metadaten (siehe IVssComponent::SetRestoreMetadata)
- Gibt an, dass eine Datei wiederhergestellt werden soll, indem die Definition der gerichteten Ziele neu angepasst wird (siehe IVssComponent::AddDirectedTarget).
Die verwendete Instanz von IVssComponent ist entweder die Instanz, die durch die explizite Aufnahme der Komponente in das Sicherungskomponentendokument während der Sicherung erstellt wurde, oder die Instanz der Komponente, die den Sicherungskomponentensatz definiert, dessen Mitglied sie war (siehe Working with Selectability For Restore and Subcomponents).