Generieren eines Wiederherstellungssatzes
Ein Wiederherstellungssatz ist eine Liste aller wiederherzustellenden Dateien und der Speicherorte, an denen sie wiederhergestellt werden.
Wie beim Generieren der Sicherungsdateiliste (siehe Generieren eines Sicherungssatzes) muss ein Algorithmus zum Bestimmen, welche Dateien wiederhergestellt werden sollen und wo sie wiederhergestellt werden sollen, von Writer instance instance und komponentenweise für jeden Writer instance.
Es ist erforderlich, jede Datei auf dem Sicherungsmedium der Komponente zuzuordnen, die sie verwaltet hat. Es ist auch erforderlich, die Wiederherstellungsmethode der Verwaltungskomponente sowie die Wiederherstellungszielinformationen der Datei sowie die alternativen Speicherortzuordnungen (falls vorhanden) abzurufen.
Einige Dateien erfordern möglicherweise auch partielle Dateivorgänge oder gerichtete Ziele für die Wiederherstellung.
Durch Die Überprüfung der Auswahl der Komponenten für Sicherungen und logische Pfade (siehe Arbeiten mit Selektivität und logischen Pfaden) kann ein Anforderer die Komponentenstruktur des Sicherungsvorgangs ermitteln, den er wiederherstellen wird.
Wenn die Komponentenstruktur der Sicherung eingerichtet ist, kann der Anforderer die Dateisatzinformationen jeder Komponente (Dateispezifikation, Pfad und Rekursionsflagge) abrufen. Ein Anforderer kann dann einen Wiederherstellungssatz generieren.
Dateien, die partielle Dateien oder angeleitete Ziele erfordern, bieten eigene detaillierte Wiederherstellungsanweisungen (siehe Nicht standardmäßige Sicherungs- und Wiederherstellungsspeicherorte), die dann dem Wiederherstellungssatz hinzugefügt werden können.
Ein typischer Mechanismus zum Generieren eines Wiederherstellungssatzes für Dateien, die nicht an partiellen Dateivorgängen beteiligt sind, oder für zielgerichtete Ziele kann wie folgt vorgehen:
Rufen Sie eine Liste der Dateien auf den Sicherungsmedien ab, einschließlich der ursprünglichen Pfade.
Identifizieren Sie die Writer-Klasse und -Komponente für jede Datei auf dem Sicherungsmedium, indem Sie die folgenden Schritte ausführen:
Rufen Sie für jeden Writer Komponenteninformationen (IVssWMComponent) ab, indem Sie IVssExamineWriterMetadata::GetComponent für alle zugehörigen Komponenten aufrufen.
Rufen Sie für jede Komponente Dateideskriptorinformationen (IVssWMFiledesc) für jeden Satz von Dateien ab, die die Komponente enthält (abhängig von den Datentypen, die die Komponente enthält, indem Sie IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile und IVssWMComponent::GetDatabaseLogFile aufrufen.
Vergleichen Sie den Namen und die Pfadinformationen der Datei mit den Pfadinformationen im Dateideskriptor für jeden Satz von Dateien in einer Komponente (zurückgegeben von IVssWMFiledesc::GetPath, IVssWMFiledesc::GetFilespec und IVssWMFiledesc::GetRecursive), um zu ermitteln, ob die Datei Teil der Komponente ist.
Hinweis
Sie sollten alle alternativen Speicherortinformationen im Dateideskriptor ignorieren, die von einer Komponente in einem gespeicherten WriterMetadatendokument abgerufen werden (d. h. IVssWMFiledesc::GetAlternateLocation gibt NULL nicht zurück). Dieser alternative Speicherort ist der alternative Pfad, der nur während der Sicherung verwendet wird.
Rufen Sie alternative Zuordnungsinformationen für jede Datei auf dem Sicherungsmedium ab:
- Alternative Dateizuordnungen werden auf der Writer-, nicht auf Komponentenebene gespeichert und aus dem Objekt IVssWMFiledesc abgerufen, das von IVssExamineWriterMetadata::GetAlternateLocationMapping zurückgegeben wird.
- Sie können ermitteln, ob eine bestimmte Datei über eine alternative Speicherortzuordnung verfügt, indem Sie den Pfad und Namen der Datei anhand der Pfad- und Dateispezifikation überprüfen, die in der alternativen Speicherortzuordnung enthalten sind, die von IVssExamineWriterMetadata::GetAlternateLocationMapping über IVssWMFiledesc::GetPath, IVssWMFiledesc::GetFilespec und IVssWMFiledesc::GetRecursive zurückgegeben werden. (Wenn während der Sicherung ein alternativer Pfad verwendet wurde, sollten diese Informationen während dieser Überprüfung bei der Verarbeitung einer Wiederherstellung ignoriert werden.)
- Wenn datei- und alternative Speicherortzuordnungsdateideskriptoren übereinstimmen, verwenden Sie die IVssWMFiledesc::GetAlternateLocation-Methode des IVssWMFiledesc-Objekts , das von IVssExamineWriterMetadata::GetAlternateLocationMapping zurückgegeben wird, um den alternativen Speicherort zu finden, an dem Sie die Datei wiederherstellen können.
- Die auf diese Weise erhaltene alternative Standortzuordnung stimmt nicht unbedingt mit der aus dem Dokument sicherungskomponenten von IVssComponent::GetAlternateLocationMapping zurückgegebenen überein. Der IVssWMFiledesc::GetAlternateLocation-Wert ist nur dann nicht angezeigt, wenn die alternative Speicherortzuordnung für eine Datei verwendet wird.
Mit diesen Datei- und Komponenteninformationen kann das Dokument sicherungskomponenten abgefragt werden, um Informationen zu Wiederherstellungszielen, Optionen und neuen Wiederherstellungsspeicherorten für jede Datei abzurufen. Diese Informationen können mit der Liste der Dateien, Komponenten und alternativen Speicherorte kombiniert werden.
Dateien, die nicht durch Writer geschützt sind, können in einer Weise ausgewählt werden, die mit herkömmlichen Wiederherstellungsvorgängen übereinstimmt.
An diesem Punkt sollte ein Anforderer über eine Liste aller Dateien verfügen, die er wiederherstellen muss, zusammen mit Anweisungen zum Wiederherstellen dieser Dateien und kann mit der Wiederherstellung von Dateien auf der Grundlage beginnen:
- Ob alternative Speicherortzuordnungen oder der ursprüngliche Dateispeicherort als Ziel für die Wiederherstellung verwendet werden soll, hängt vom Vorhandensein oder Fehlen einer Datei an diesem Zielspeicherort und den Komponenteneinstellungen von VSS_RESTORE_TARGET und VSS_RESTOREMETHOD_ENUM ab (siehe Nicht standardmäßige Sicherungs- und Wiederherstellungsspeicherorte).
- Ob ein Wiederherstellungsversuch erfolgreich ist, hängt von Problemen ab, z. B. den Zugriffsberechtigungen des Ziels, ob Zieldateien gesperrt sind, und anderen herkömmlichen Problemen, die mit der Dateiwiederherstellung verbunden sind.
- Der Erfolg oder Fehler beim Wiederherstellen einer bestimmten Komponente für einen bestimmten Writer instance sollte im Dokument Sicherungskomponenten beibehalten werden, indem IVssBackupComponents::SetFileRestoreStatus aufgerufen wird. Dadurch werden die Informationen für Autoren zugänglich, wenn sie das PostRestore-Ereignis verarbeiten.
- Wenn eine Datei in einer alternativen Speicherortzuordnung wiederhergestellt wird, muss der Anforderer IVssBackupComponents::AddAlternativeLocationMapping aufrufen. Dadurch können Autoren bestimmen, ob ihre Dateien über IVssComponent::GetAlternateLocationMapping an alternativen Speicherorten wiederhergestellt wurden.
- Anforderer finden es möglicherweise wünschenswert, Dateien an völlig neuen Speicherorten wiederherzustellen. Dies ist akzeptabel, aber der Anforderer muss dies dem Writer mithilfe der IVssBackupComponents::AddNewTarget-Methode angeben.