Génération d’un jeu de restauration
Un jeu de restauration est une liste de tous les fichiers à restaurer et des emplacements vers lesquels ils seront restaurés.
Comme lors de la génération de la liste des fichiers de sauvegarde (consultez génération d’un jeu de sauvegarde), un algorithme permettant de déterminer les fichiers à restaurer et l’emplacement de leur restauration doit effectuer l' instance de l’enregistreur par l’instance de Writer et, par composant, pour chaque instance du writer.
Il est nécessaire d’associer chaque fichier sur le support de sauvegarde au composant qui l’a géré. Il est également nécessaire d’obtenir la méthode de restaurationdu composant de gestion, les informations sur la cible de restauration du fichier et ses mappages d’emplacements secondaires (le cas échéant).
Certains fichiers peuvent également nécessiter des opérations de fichiers partielles ou des cibles dirigées pour la restauration.
En examinant la sélectivité des composants pour la sauvegarde et les chemins logiques (voir utilisation de la sélectivité et des chemins logiques), un demandeur est en mesure de déterminer la structure du composant de l’opération de sauvegarde qu’il va restaurer.
Avec la structure de composant de la sauvegarde établie, le demandeur peut obtenir les informations sur le jeu de fichiers de chaque composant (spécification de fichier, chemin d’accès et indicateur de récurrence). Un demandeur peut ensuite générer un jeu de restauration.
Les fichiers nécessitant des fichiers partielsou des cibles dirigées fournissent leurs propres instructions de restauration détaillées (consultez emplacements de restauration et de sauvegarde non définis par défaut), qui peuvent ensuite être ajoutés au jeu de restauration.
Un mécanisme classique de génération d’un jeu de restauration pour les fichiers qui ne sont pas impliqués dans des opérations de fichiers partiels, ou les cibles dirigées peut se poursuivre en procédant comme suit :
Obtenez la liste des fichiers sur le support de sauvegarde, y compris leurs chemins d’accès d’origine.
Identifiez la classe de writer et le composant pour chaque fichier sur le support de sauvegarde en procédant comme suit :
- Pour chaque enregistreur, obtenez les informations sur le composant (IVssWMComponent) en appelant IVssExamineWriterMetadata :: GetComponent sur tous ses composants.
- Pour chaque composant, obtenez les informations de descripteur de fichier (IVssWMFiledesc) pour chaque ensemble de fichiers que le composant contient (selon les types de données que le composant contient en appelant IVssWMComponent :: GetFile, IVssWMComponent :: GetDatabaseFileet IVssWMComponent :: GetDatabaseLogFile.
- Comparez les informations de nom et de chemin d’accès du fichier à celles retournées par les informations de chemin d’accès contenues dans le descripteur de fichier pour chaque ensemble de fichiers dans un composant (retourné par IVssWMFiledesc :: GetPath, IVssWMFiledesc :: GetFilespecet IVssWMFiledesc :: GetRecursive) par rapport aux informations de chemin des fichiers stockés pour déterminer si le fichier fait partie du composant.
Notes
Vous devez ignorer les autres informations sur l’emplacement dans le descripteur de fichier récupéré à partir d’un composant trouvé dans un document de métadonnées de l’enregistreur stocké (autrement dit, IVssWMFiledesc :: GetAlternateLocation ne retourne pas la valeur null). Cet autre emplacement est le chemin alternatif, qui est utilisé uniquement lors de la sauvegarde.
Obtenez d’autres informations de mappage pour chaque fichier sur le support de sauvegarde :
- Les mappages de fichiers de remplacement sont stockés au moment de l’écriture, et non au niveau du composant, et sont obtenus à partir de l’objet IVssWMFiledesc retourné par IVssExamineWriterMetadata :: GetAlternateLocationMapping.
- Vous pouvez déterminer si un fichier particulier possède un autre mappage d’emplacement en vérifiant le chemin d’accès et le nom du fichier par rapport au chemin d’accès et à la spécification de fichier contenus dans le mappage de l’emplacement de remplacement retourné par IVssExamineWriterMetadata :: GetAlternateLocationMapping, via IVssWMFiledesc :: GetPath, IVssWMFiledesc :: GetFilespecet IVssWMFiledesc :: GetRecursive. (Si un autre chemin d’accès a été utilisé lors de la sauvegarde, ces informations doivent être ignorées au cours de cette vérification du traitement d’une restauration.)
- Si un fichier et un emplacement de remplacement mappent les descripteurs de fichiers à, vous utilisez la méthode IVssWMFiledesc :: GetAlternateLocation de l’objet IVssWMFiledesc retourné par IVssExamineWriterMetadata :: GetAlternateLocationMapping pour Rechercher l’autre emplacement vers lequel vous pouvez restaurer le fichier.
- Le mappage de l’autre emplacement obtenu de cette façon n’accepte pas nécessairement celui renvoyé par le document des composants de sauvegarde par IVssComponent :: GetAlternateLocationMapping. La valeur IVssWMFiledesc :: GetAlternateLocation n’est pas vide uniquement si le mappage d’emplacement secondaire est utilisé pour un fichier.
Avec ces informations de fichier et de composant, le document composants de sauvegarde peut être interrogé pour obtenir des informations sur les cibles de restauration, les options et les nouveaux emplacements de restauration pour chaque fichier. Ces informations peuvent être associées à la liste des fichiers, composants et emplacements secondaires.
Les fichiers non protégés par les rédacteurs peuvent être sélectionnés de manière cohérente avec les opérations de restauration traditionnelles.
À ce stade, un demandeur doit avoir une liste de tous les fichiers dont il a besoin pour la restauration, ainsi que des instructions sur la façon de les restaurer et de commencer à restaurer des fichiers sur la base de :
- Si des mappages d’emplacements de substitution, ou l’emplacement de fichier d’origine doivent être utilisés comme cible pour la restauration, dépend de la présence ou de l’absence d’un fichier à cet emplacement cible et des paramètres de composant de la _ _ cible de restauration VSS et de l' _ _ énumération VSS RESTOREMETHOD (consultez emplacements de sauvegarde et de restauration non définis par défaut).
- Le fait qu’une tentative de restauration aboutisse dépende de problèmes tels que les autorisations d’accès de la cible, si les fichiers cibles sont verrouillés et d’autres problèmes conventionnels liés à la restauration des fichiers.
- La réussite ou l’échec de la restauration d’un composant donné pour une instance de writer donnée doit être conservé dans le document des composants de sauvegarde en appelant IVssBackupComponents :: SetFileRestoreStatus. Cela rendra les informations accessibles aux enregistreurs lors du traitement de l’événement PostRestore.
- Si un fichier est restauré vers un autre mappage d’emplacement, le demandeur doit appeler IVssBackupComponents :: AddAlternativeLocationMapping. Cela permettra aux rédacteurs de déterminer si leurs fichiers ont été restaurés à d’autres emplacements via IVssComponent :: GetAlternateLocationMapping.
- Les demandeurs peuvent trouver qu’il est souhaitable de restaurer les fichiers à de nouveaux emplacements. Cela est acceptable, mais le demandeur doit l’indiquer à l’enregistreur à l’aide de la méthode IVssBackupComponents :: AddNewTarget .