Partager via


Restauration des sauvegardes incrémentielles et différentielles

La restauration d’une sauvegarde incrémentielle ou différentielle sous VSS n’est pas sensiblement différente de toute autre opération de restauration VSS.

Un enregistreur peut modifier les cibles de restauration ou le ciblage dirigé par la requête, et un demandeur doit gérer les mappages d’emplacements de substitution et les nouvelles cibles, comme pour toute autre restauration. Toutefois, deux problèmes importants doivent être pris en compte dans la gestion de la restauration d’une sauvegarde incrémentielle ou différentielle : les restaurations supplémentaires et les empreintes de sauvegarde.

Restaurations supplémentaires

Le premier problème est celui des restaurations supplémentaires. Un opérateur de sauvegarde peut avoir besoin d’exécuter plusieurs opérations de restauration à l’aide d’un support de sauvegarde incrémentiel ou différentielle initial et ultérieur comme source.

Certains auteurs, généralement dans le cadre de leur gestion d’un événement PostRestore à l’aide de CVssWriter::OnPostRestore, utilisent des fichiers restaurés pour effectuer des mises à jour des données actuellement sur disque. Pour certains de ces enregistreurs, il est inefficace ou dangereux de mettre à jour à plusieurs reprises les données sur disque à partir de fichiers restaurés.

Par conséquent, il est important que les applications de sauvegarde indiquent quand un composant ou un ensemble de composants peut nécessiter des restaurations ultérieures en appelant IVssBackupComponents::SetAdditionalRestores.

Un enregistreur appelle IVssComponent::GetAdditionalRestores pour déterminer si l’opérateur de sauvegarde a planifié d’autres restaurations du composant ou de l’ensemble de composants.

Si le demandeur n’avait pas appelé IVssBackupComponents::SetAdditionalRestores, IVssComponent::GetAdditionalRestores retourne false, et l’enregistreur peut effectuer tout traitement post-restauration dont il a besoin.

Si IVssBackupComponents::SetAdditionalRestores avait été appelé, IVssComponent::GetAdditionalRestores retourne true, et un enregistreur doit décider comment gérer les opérations post-restauration. Pour instance, l’enregistreur peut choisir de ne pas mettre à jour ses données sur disque.

Tampons de sauvegarde

Dans le cadre de l’opération de sauvegarde complète précédente, un enregistreur a peut-être stocké un tampon de sauvegarde dans le document des composants de sauvegarde du demandeur.

L’empreinte de sauvegarde est stockée sous forme de chaîne, et son format et ses informations ne sont pas intelligibles pour le demandeur. Par conséquent, le demandeur ne peut pas utiliser directement les informations d’empreinte de sauvegarde.

Au lieu de cela, sa tâche consiste à mettre ces informations à la disposition de l’enregistreur, en appelant la méthode IVssBackupComponents::SetPreviousBackupStamp avant la génération d’un événement PrepareForBackup pour une sauvegarde incrémentielle.

Le demandeur effectue cette opération sur une base de composant par composant. Un demandeur examine les informations d’empreinte de sauvegarde des composants ou des ensembles de composants stockés à l’aide d’IVssComponent::GetBackupStamp.

Si les informations d’empreinte de sauvegarde sont appropriées au type de restauration que le demandeur effectue, elles sont disponibles comme horodatage de la dernière sauvegarde d’un composant avec la méthode IVssBackupComponents::SetPreviousBackupStamp .

Un enregistreur récupère les informations de tampon de sauvegarde à l’aide d’IVssComponent::GetPreviousBackupStamp. Un enregistreur de cette classe a généré l’empreinte de sauvegarde initiale, afin que l’enregistreur soit en mesure de décoder ce tampon et d’utiliser les informations. Sur cette base, lors de la gestion d’un événement PreRestore , un rédacteur peut choisir d’effectuer des actions telles que la modification des cibles de restauration ou la demande de ciblage dirigé.