Vue d’ensemble du nettoyage et de l’arrêt de la restauration
Après une restauration, les enregistreurs case activée la status de l’opération afin qu’ils puissent utiliser les données restaurées et gérer les erreurs. Le demandeur doit attendre la fin de cette activité. Pour plus d’informations, consultez Vue d’ensemble du traitement d’une restauration sous VSS.
Le tableau suivant montre la séquence d’actions et d’événements nécessaires après une opération de restauration.
Action du demandeur | Événement | Action writer |
---|---|---|
Le demandeur indique la fin de la restauration (voir IVssBackupComponents::P ostRestore). | PostRestore | L’enregistreur effectue le nettoyage après restauration et gère les échecs de restauration et les fichiers qui ont été restaurés à des emplacements non standard (voir CVssWriter::OnPostRestore, IVssComponent). |
Le demandeur attend que les enregistreurs gèrent l’événement PostRestore avec IVssAsync. Il doit également vérifier writer status (voir IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatus). | None | Aucune |
Le demandeur libère l’interface IVssBackupComponents . | Aucune | Aucune |
Actions du demandeur pendant le nettoyage et l’arrêt
À ce stade, un demandeur indique la fin de ses activités de restauration de fichiers en générant un événement PostRestore en appelant IVssBackupComponents::P ostRestore.
Les actions du demandeur sont limitées à l’attente sur les rédacteurs, qui peuvent avoir besoin d’effectuer un nettoyage final et de gérer les erreurs de restauration, et à libérer l’interface IVssBackupComponents une fois que tous les rédacteurs sont retournés après la gestion de l’événement PostRestore .
Actions de l’enregistreur pendant le nettoyage et l’arrêt
L’événement PostRestore est géré par la méthode virtuelle CVssWriter::OnPostRestore. L’implémentation par défaut retourne simplement true sans effectuer aucune action. Si un writer doit exercer plus de contrôle sur la situation post-restauration, il peut remplacer cette méthode.
En plus de tout nettoyage normal (tel que la suppression de fichiers temporaires) qu’un enregistreur peut effectuer dans CVssWriter::OnPostRestore, il peut gérer la réussite ou l’échec des opérations de restauration.
La façon dont il gère les erreurs de restauration, les fichiers restaurés à un autre emplacement et la nécessité de futures restaurations sont entièrement à la discrétion de l’enregistreur. Les actions courantes peuvent inclure la comparaison de fichiers dans des emplacements alternatifs ou nouveaux avec des fichiers en cours d’utilisation, la fusion des données de plusieurs fichiers ou le démarrage de nouvelles sessions connectées aux nouveaux fichiers de données. VSS fournit les mécanismes suivants pour la prise en charge de cela sur une base de composant par composant :
- La restauration d’un composant a réussi ou échoué avec IVssComponent::GetFileRestoreStatus.
- L’utilisation de mappages d’emplacements alternatifs dans la restauration de fichiers est indiquée par IVssComponent::GetAlternateLocationMapping.
- Pour déterminer si une restauration est incrémentielle et nécessite d’autres restaurations, appelez IVssComponent::GetAdditionalRestores. Les enregistreurs qui ont besoin d’une restauration complète de leurs données ne doivent pas redémarrer tant que cette méthode n’a pas retourné false.
- Les enregistreurs peuvent déterminer si le demandeur a besoin de restaurer des fichiers à un emplacement précédemment non spécifié à l’aide de IVssComponent::GetNewTargetCount et IVssComponent::GetNewTarget
(Pour plus d’informations sur la restauration de fichiers à des emplacements autres que les emplacements par défaut, consultez Emplacements de sauvegarde et de restauration autres que les emplacements par défaut.)
Comme pour toute méthode IVssComponent, les informations retournées par un instance donné s’appliquent aux composants explicitement inclus pour la sauvegarde et à tous les composants implicitement inclus pour les sous-composants de sauvegarde, y compris ces sous-composants explicitement inclus pour la restauration par le demandeur à l’aide de IVssBackupComponents::AddRestoreSubcomponents (pour plus d’informations, voir Utilisation de la possibilité de sélection pour la restauration et les sous-composants).
Étant donné que les rédacteurs devront accéder au document des composants de sauvegarde, il est important que le demandeur ne libère pas l’interface IVssBackupComponents tant que les rédacteurs n’ont pas terminé le traitement.