Wiederherstellen inkrementeller und differenzieller Sicherungen

Das Wiederherstellen einer inkrementellen oder differenziellen Sicherung unter VSS unterscheidet sich nicht wesentlich von anderen VSS-Wiederherstellungsvorgang.

Ein Writer kann Wiederherstellungsziele oder anforderungsgesteuerte Zielgruppenadressierungen ändern, und ein Anforderer muss alternative Speicherortzuordnungen und neue Ziele verarbeiten, wie bei jeder anderen Wiederherstellung. Bei der Wiederherstellung einer inkrementellen oder differenziellen Sicherung sind jedoch zwei wichtige Probleme zu beachten: zusätzliche Wiederherstellungen und Sicherungsstempel.

Zusätzliche Wiederherstellungen

Das erste Problem besteht darin, dass zusätzliche Wiederherstellungen erforderlich sind. Ein Sicherungsoperator muss möglicherweise mehrere Wiederherstellungsvorgänge mit einem ersten vollständigen und nachfolgenden inkrementellen oder differenziellen Sicherungsmedium als Quelle ausführen.

Einige Writer, in der Regel im Rahmen der Behandlung eines PostRestore-Ereignisses mit CVssWriter::OnPostRestore,verwenden wiederhergestellte Dateien, um Aktualisierungen von Daten durchzuführen, die sich derzeit auf dem Datenträger befinden. Für einige dieser Writer ist es ineffizient oder gefährlich, daten auf dem Datenträger aus wiederhergestellten Dateien wiederholt zu aktualisieren.

Daher ist es wichtig, dass Sicherungsanwendungen angeben, wann eine Komponente oder ein Komponentensatz nachfolgende Wiederherstellungen erfordern kann, indem IVssBackupComponents::SetAdditionalRestoresaufgerufen wird.

Ein Writer ruft IVssComponent::GetAdditionalRestores auf, um zu bestimmen, ob der Sicherungsoperator weitere Wiederherstellungen der Komponente oder des Komponentensatzes geplant hat.

Wenn der Anforderer IVssBackupComponents::SetAdditionalRestoresnicht aufgerufen hat, gibt IVssComponent::GetAdditionalRestores false zurück, und der Writer kann eine beliebige Verarbeitung nach der Wiederherstellung ausführen, die er benötigt.

Wenn IVssBackupComponents::SetAdditionalRestores aufgerufen wurde, gibt IVssComponent::GetAdditionalRestores true zurück, und ein Writer sollte entscheiden, wie Vorgänge nach der Wiederherstellung behandelt werden sollen. Beispielsweise kann der Writer seine Daten auf dem Datenträger nicht aktualisieren.

Sicherungsstempel

Im Rahmen des vorherigen vollständigen Sicherungsvorgangs hat ein Writer möglicherweise einen Sicherungsstempel im Sicherungskomponentendokument des Anfordernden gespeichert.

Der Sicherungsstempel wird als Zeichenfolge gespeichert, und das Format und die Informationen sind für den Anforderer nicht verständlich. Daher kann der Anfordernde die Sicherungsstempelinformationen nicht direkt verwenden.

Stattdessen besteht die Aufgabe darin, diese Informationen dem Writer zur Verfügung zu stellen, indem die IVssBackupComponents::SetPreviousBackupStamp-Methode vor der Generierung eines PrepareForBackup-Ereignisses für eine inkrementelle Sicherung aufgerufen wird.

Der Anforderer führt dies komponentenweise durch. Ein Anforderer untersucht gespeicherte Komponenten- oder Komponentensatz-Sicherungsstempelinformationen mithilfe von IVssComponent::GetBackupStamp.

Wenn Sicherungsstempelinformationen für den Typ der Wiederherstellung geeignet sind, die der Anforderer durchsetzt, werden sie als Zeitstempel der letzten Sicherung einer Komponente mit der IVssBackupComponents::SetPreviousBackupStamp-Methode verfügbar.

Ein Writer wiederhergestellt die Sicherungsstempelinformationen mithilfe von IVssComponent::GetPreviousBackupStamp. Ein Writer dieser Klasse hat den ersten Sicherungsstempel generiert, sodass der Writer diesen Stempel decodieren und die Informationen verwenden kann. Basierend darauf kann ein Writer bei der Behandlung eines PreRestore-Ereignisses Aktionen wie das Ändern von Wiederherstellungszielen oder das Anfordern von gezielten Zielen ergreifen.