Partager via


Définition de composants par enregistreurs

Les composants sont définis par et instanciés par des enregistreurs dans leur document de métadonnées writer en réponse à un Identifier l’événement au début d’une opération de sauvegarde (voir Vue d’ensemble de l’initialisation de la sauvegarde) lorsque le document de métadonnées writer est rempli.

Lors de la création d’un composant dans son document de métadonnées writer, en utilisant IVssCreateWriterMetadata et IVssCreateWriterMetadata ::AddComponent, un enregistreur doit spécifier :

  • Indique si le composant est sélectionnable pour le de sauvegarde
  • Type de composant
  • Un nom de composant (qui doit être unique non seulement dans une instance d’enregistreur de donnée mais sur toutes les instances de l’enregistreur)
  • Indique si le composant a des métadonnées spécifiques à l’enregistreur qui lui sont associées
  • Indique si l’enregistreur nécessite une notification après une sauvegarde réussie

Les enregistreurs peuvent éventuellement spécifier :

  • Le chemin d’accès logique d’un composant (qui doit être unique non seulement dans une instance d’enregistreur donnée, mais dans toutes les instances de l’enregistreur)
  • Description d’un composant (ou légende)
  • Icône à utiliser avec des URI pour indiquer le composant

Il n’est pas nécessaire qu’un composant contienne réellement des fichiers. Ce type de composant vide ou « factice » peut être utile dans l’organisation des composants. Ce composant peut être utilisé pour définir un jeu de composants et le composant d’un enregistreur (voir chemin d’accès logique des composants).

Configuration de l’organisation des composants

Définition dude sélectiond’un composant (sa sélectabilité pour lesde sauvegarde, et sa sélectabilité pour la restauration) et ses chemins d’accès logiques permet à un enregistreur de mandater ou de rendre facultatif l’inclusion de certains composants dans une opération de sauvegarde ou de restauration, et de regrouper les composants dans ensembles de composants avec un composant sélectionnable agissant comme point d’entrée dans l’ensemble groupe.

L’appartenance à ces regroupements détermine les composants qui seront utilisés pendant les opérations de sauvegarde et de restauration. L’utilisation de « sélectionnable » pour signifier la sélection de retour pour l’opération de sauvegarde et la restauration pour l’opération de restauration, les développeurs doivent comprendre ce qui suit :

  • Si des composants gérés par un enregistreur donné sont sauvegardés, un demandeur doit inclure explicitement tous les composants non sélectionnables sans ancêtres sélectionnables dans leur chemin d’accès logique au document composants de sauvegarde et sauvegarder et restaurer ces composants en tant que groupe.
  • Un demandeur a la possibilité d’ajouter explicitement des composants sélectionnables au document composants de sauvegarde pendant les opérations de sauvegarde et de restauration ; une fois ajouté, le composant doit être sauvegardé ou restauré.
  • Si un composant est sélectionnable, le composant et tous ses sous-composants (tels que définis par des chemins logiques) forment un jeu de composants, qui peut être traité comme une unité unique qui peut éventuellement participer aux opérations de sauvegarde et de restauration.
  • Un demandeur n’ajoute jamais explicitement un composant non sélectionnable avec des ancêtres sélectionnables, un sous-composant dans un jeu de composants, à son document composants de sauvegarde pendant les opérations de sauvegarde et de restauration. Ces composants doivent être implicitement inclus si leur ancêtre sélectionnable est explicitement ajouté, auquel cas ils doivent être sauvegardés ou restaurés (voir Utilisation des composants par le demandeur).
  • Un composant sélectionnable avec un ancêtre sélectionnable est toujours un sous-composant (membre d’un jeu de composants) et peut être implicitement inclus si son ancêtre sélectionnable est explicitement inclus dans l’opération. Dans ce cas, ses informations ne sont pas ajoutées au document composants de sauvegarde. Si son ancêtre sélectionnable n’est pas inclus dans l’opération, le composant peut être explicitement sélectionné pour l’inclusion dans l’opération, auquel cas ses informations sont incluses dans le document composants de sauvegarde.
  • Un sous-composant implicitement inclus dans une sauvegarde peut être explicitement inclus dans une opération de restauration, quel que soit l’état d’un ancêtre sélectionnable, s’il est sélectionnable pour la restauration. Tout sous-composant de restauration pouvant être sélectionné pendant une opération de restauration doit avoir ses informations ajoutées au document composants de sauvegarde.
  • Un enregistreur qui n’a pas été explicitement ajouté au document composants de sauvegarde avant la génération de PrepareForBackup et événements preRestore ne recevront pas d’autres événements VSS.

Pour plus d’informations, consultez Utilisation de la sélection et des chemins logiques.

Ajout de fichiers à un composant

Un composant contient des informations de fichier sous la forme d’un jeu de fichiers qui contient :

  • Répertoire racine des fichiers dans le composant.
  • Spécification de fichier pour les fichiers du composant.
  • Indicateur qui indique si la spécification du composant est récursive.

Selon le type de composant, qui peut être une base de données ou un groupe de fichiers, et (dans le cas des composants de base de données) que les fichiers à charger soient des fichiers de données ou de journaux, un enregistreur appelle IVssCreateWriterMetadata ::AddFilesToFileGroup, IVssCreateWriterMetadata ::AddDatabaseFiles, ou IVssCreateWriterMetadata ::AddDatabaseLogFiles ajouter un jeu de fichiers.

Lorsque vous utilisez ces fonctions, vous devez spécifier les fichiers à ajouter au jeu de fichiers comme suit :

  • wszPath: il s’agit du chemin d’accès au répertoire qui contient les fichiers à ajouter au jeu de fichiers. Si le paramètre bRecursive est défini sur true, le paramètre wszPath spécifie une hiérarchie de répertoires à parcourir de manière récursive et tous les répertoires doivent être recréés, y compris les répertoires vides.
  • wszFilespec: cette chaîne spécifie les fichiers de chaque répertoire à ajouter au jeu de fichiers.

Par exemple, supposons que la structure de répertoires suivante existe :

C :\\Directory1\\File1.txt C :\\Directory1\\File2.txt C :\\Directory1\\Directory2\\File1.txt C :\\Directory1\\Directory2\\File2.txt C :\Directory1\\Directory3\\

Si l’enregistreur spécifie « C :\Directory1 » pour wszPath, « File1.* » pour wszFilespecet true pour bRecursive, le demandeur doit inclure ces fichiers :

C :\\Directory1\\File1.txt C :\\Directory1\\Directory2\\File1.txt

Si l’enregistreur spécifie à la place « C :\Directory1 » pour wszPath , « * » pour wszFilespecet true pour bRecursive, le demandeur doit inclure ces fichiers :

C :\\Directory1\\File1.txt C :\\Directory1\\File2.txt C :\\Directory1\\Directory2\\File1.txt C :\\Directory1\\Directory2\\File2.txt

Si l’enregistreur spécifie « C :\Directory1 » pour wszPath , « * » pour wszFilespecet false pour bRecursive, le demandeur doit inclure ces fichiers :

C :\\Directory1\\File1.txt C :\\Directory1\\File2.txt

Dans tous les exemples précédents, chaque fois que l’enregistreur spécifie true pour bRecursive, le répertoire vide C :\Directory1\Directory3\ doit être recréé.

Pour un jeu de fichiers ajouté à un composant de groupe de fichiers, dans les cas où les fichiers actuellement présents sur le disque ne se trouvent pas dans ce que l’enregistreur considère comme l’emplacement approprié ou par défaut, un enregistreur a la possibilité d’ajouter un autre chemin d’accès. Dans ce cas, la définition du jeu de fichiers du chemin contient l’emplacement normal des fichiers et l’emplacement où les fichiers doivent être restaurés, tandis que le chemin d’accès secondaire contient l’emplacement actuel des fichiers à sauvegarder.

Tous les fichiers du jeu de fichiers doivent exister au moment de la sauvegarde. Les demandeurs doivent supposer que tous les fichiers répertoriés dans le jeu de fichiers sont requis pour la sauvegarde et échouent si des fichiers sont manquants. Notez que lorsque « * » est spécifié pour le paramètre wszFilespec, il peut correspondre à zéro ou plusieurs fichiers.

Notez que ces attributs de document de métadonnées de l’enregistreur comme mappages d’emplacements alternatifs, fichiers explicitement inclus et exclus, et les méthodes de restauration sont définies au niveau de l’enregistreur, et non au niveau du composant. (Pour plus d’informations, consultez Utilisation du document de métadonnées writer.)

Définition de composant pour les opérations de sauvegarde et de restauration

Les opérations de restauration et de sauvegarde génèrent nécessairement un Identifier lesd’événements, et pour les sauvegardes et les restaurations, elles sont gérées par la même méthode CVssWriter ::OnIdentify.

Pendant les opérations de sauvegarde, les demandeurs utilisent les informations retournées par les méthodes CVssWriter ::OnIdentify pour déterminer les enregistreurs présents sur le système, puis déterminer quels fichiers sauvegarder.

Pendant les opérations de restauration, les informations retournées par les CVssWriter ::OnIdentify événement sont utilisées uniquement pour établir l’identité et l’état des enregistreurs actuellement présents sur le système ; les informations de spécification de fichier générées lors d’une restauration ne sont pas utilisées. Au lieu de cela, les documents de métadonnées writer stockés au moment de la sauvegarde sont utilisés pour obtenir ces données.

Une fois générées lors d’une opération de sauvegarde, les informations du composant writer, ainsi que le reste des informations de l’enregistreur, sont enregistrées pour être récupérées pour prendre en charge les opérations de restauration. Il incombe généralement au demandeur de stocker ces informations.