Wiederherstellen inkrementeller und differenzieller Sicherungen
Das Wiederherstellen einer inkrementellen oder differenziellen Sicherung unter VSS unterscheidet sich nicht wesentlich von anderen VSS-Wiederherstellungsvorgängen.
Ein Writer kann Wiederherstellungsziele ändern oder eine gezielte Zielgruppenausrichtung anfordern, und ein Anforderer muss alternative Standortzuordnungen und neue Ziele verarbeiten, genau wie bei jeder anderen Wiederherstellung. Es gibt jedoch zwei wichtige Probleme, die bei der Verarbeitung der Wiederherstellung einer inkrementellen oder differenziellen Sicherung beachtet werden müssen: zusätzliche Wiederherstellungen und Sicherungsstempel.
Zusätzliche Wiederherstellungen
Das erste Problem ist das der zusätzlichen Wiederherstellungen. Ein Sicherungsoperator muss möglicherweise mehrere Wiederherstellungsvorgänge ausführen, indem ein anfängliches vollständiges und nachfolgendes inkrementelles oder differenzielles Sicherungsmedium als Quelle verwendet wird.
Einige Autoren verwenden in der Regel im Rahmen ihrer Verarbeitung eines PostRestore-Ereignisses mithilfe von CVssWriter::OnPostRestore wiederhergestellte Dateien, um Aktualisierungen der daten auf dem Datenträger auszuführen. Für einige dieser Autoren ist es ineffizient oder gefährlich, daten auf dem Datenträger wiederholt aus wiederhergestellten Dateien zu aktualisieren.
Daher ist es wichtig, dass Sicherungsanwendungen angeben, wann eine Komponente oder Komponentengruppe möglicherweise nachfolgende Wiederherstellungen erfordert, indem sie IVssBackupComponents::SetAdditionalRestores aufrufen.
Ein Writer würde IVssComponent::GetAdditionalRestores aufrufen, um zu bestimmen, ob der Sicherungsoperator weitere Wiederherstellungen der Komponente oder des Komponentensatzes geplant hat.
Wenn der Anforderer nicht IVssBackupComponents::SetAdditionalRestores aufgerufen hat, gibt IVssComponent::GetAdditionalRestores false zurück, und der Writer kann jede nach der Wiederherstellung benötigte Verarbeitung ausführen.
Wenn IVssBackupComponents::SetAdditionalRestores aufgerufen wurde, gibt IVssComponent::GetAdditionalRestorestrue zurück, und ein Writer sollte entscheiden, wie Vorgänge nach der Wiederherstellung behandelt werden sollen. Für instance kann der Writer entscheiden, seine Daten auf dem Datenträger nicht zu aktualisieren.
Sicherungsstempel
Im Rahmen des vorherigen vollständigen Sicherungsvorgangs hat ein Writer möglicherweise einen Sicherungsstempel im Dokument der Sicherungskomponenten des Anforderers gespeichert.
Der Sicherungsstempel wird als Zeichenfolge gespeichert, und sein Format und seine Informationen sind für den Anforderer nicht verständlich. Daher kann der Anforderer die Informationen des Sicherungsstempels nicht direkt nutzen.
Stattdessen besteht seine Aufgabe darin, diese Informationen für den Writer verfügbar zu machen, indem die IVssBackupComponents::SetPreviousBackupStamp-Methode vor der Generierung eines PrepareForBackup-Ereignisses für eine inkrementelle Sicherung aufgerufen wird.
Der Anforderer führt dies komponentenweise aus. Ein Anforderer untersucht gespeicherte Komponenten- oder Komponentensatz-Sicherungsstempelinformationen mithilfe von IVssComponent::GetBackupStamp.
Wenn die Sicherungsstempelinformationen für den Typ der Wiederherstellung geeignet sind, die der Anforderer vornimmt, werden sie als Zeitstempel der letzten Sicherung einer Komponente mit der IVssBackupComponents::SetPreviousBackupStamp-Methode verfügbar.
Ein Writer stellt die Sicherungsstempelinformationen mithilfe von IVssComponent::GetPreviousBackupStamp wieder her. Ein Writer dieser Klasse hat den ersten Sicherungsstempel generiert, sodass der Writer diesen Stempel decodieren und die Informationen verwenden kann. Auf dieser Grundlage kann ein Schreiber beim Behandeln eines PreRestore-Ereignisses Aktionen ergreifen, z. B. das Ändern von Wiederherstellungszielen oder das Anfordern eines gerichteten Targetings.