Migration de contenu : exportation de contenu

Windows SharePoint Services 3

La migration de contenu est un processus en deux étapes. Tout d'abord, vous exportez le contenu à partir de la source vers un package de migration, puis vous importez le package de la migration vers la destination.

Vue d'ensemble de l'opération d'exportation

Le diagramme ci-dessous illustre le flux conceptuel d'une opération d'exportation standard à l'aide des API de migration dans l'espace de noms de déploiement (si vous le souhaitez, conjointement avec l'outil Stsadm.exe). Le diagramme de flux illustre la prise en charge d'un scénario dans lequel une collection de sites complète est migrée pour créer un site en parallèle, identique (en conservant l'identité de l'objet), puis des migrations sélectives ultérieures ont lieu selon une planification récurrente. Ces migrations « sélectives » ultérieures permettent des opérations d'exportation/d'importation uniquement sur les objets qui correspondentent aux critères spécifiés (par exemple, ont changé dans les vingt-quatre heures précédentes).

Migration sélective : diagramme de flux d'exportation
Exporter le diagramme de flux des opérations

Notez qu'avant d'exécuter des migrations sélectives, vous devez exécuter une migration complète afin de configurer votre serveur de destination. Lorsque vous exécutez cette migration complète préparatoire, vous devez affecter à la propriété RetainObjectIdentity sur l'objet SPImportSettings la valeur true.

Notez également que votre première décision consiste à déterminer si vous avez l'intention d'effectuer une migration complète ou sélective.

Exporter des propriétés de paramètres (SPExportSettings)

La classe SPDeploymentSettings sert de classe de base à partir de laquelle SPExportSettings et SPImportSettings sont dérivées. Ses membres sont alors hérités par ces deux classes dérivées ; en outre, chacune des classes dérivées (paramètres d'exportation et d'importation) contiennent des membres spécialisés liés aux opérations d'exportation et d'importation.

Les propriétés de la classe Microsoft.SharePoint.Deployment.SPExportSettings, ainsi que celles de la classe de base, peuvent être divisées en quatre groupes :

  • Obligatoire : paramètres de propriétés qui sont requis pour l'exportation.

  • Important : paramètres de propriétés qui sont de haute importance et que vous devez prendre en compte dans votre planification d'exportation.

  • Sélectif : paramètres de propriétés qui sont spécifiquement liés aux opérations d'exportation de la migration sélective.

  • Mineur : paramètres mineurs ou rarement utilisés.

Paramètres d'exportation obligatoires

  • ExportObjects

    Récupère l'objet collection d'objets d'exportation (SPExportObjectCollection)

  • BaseFileName (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Définit ou extrait le nom du fichier ou des fichiers de package (.cmp) de la migration de contenu. Il s'agit d'un ou plusieurs fichiers .cab (utilisant l'extension de fichier .cmp). La valeur provient du paramètre baseFileName sur le constructeur de classe SPDeploymentSettings (SPDeploymentSettings).

    Lorsqu'il existe plusieurs fichiers .cmp, les noms des fichiers sont ajoutés numériquement. Par exemple, quand le paramètre baseFileName est « Mon_site_Web », et quand l'opération d'exportation génère plusieurs fichiers .cmp, les packages de migration sont nommés « Mon_site_Web1.cmp », « Mon_site_Web2.cmp » et ainsi de suite.

  • SiteUrl (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Définit ou récupère l'URL de collection de sites qui contient le contenu en cours d'exportation. La valeur est une URL absolue sur le site. La valeur est fournie par le paramètre siteUrl du constructeur de classe SPDeploymentSettings (SPDeploymentSettings).

  • FileLocation (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Définit ou extrait le chemin d'accès du fichier et l'emplacement du répertoire où les packages de migration de contenu sont placés sur l'exportation. Cette valeur est fournie par le paramètre fileLocation du constructeur de classe SPDeploymentSettings (SPDeploymentSettings).

Paramètres d'exportation importants

  • IncludeVersions

    Définit ou extrait une valeur de l'énumération SPIncludeVersions qui spécifie par version quel contenu est sélectionné pour l'exportation vers le package de migration de contenu. Il existe quatre valeurs d'énumération :

    • All, qui exporte toutes les versions existantes d'une sélection de fichiers ;

    • CurrentVersion, qui exporte uniquement la version la plus récente d'une sélection de fichiers ;

    • LastMajor, qui exporte uniquement la dernière version principale d'une sélection de fichiers. Il s'agit de la valeur par défaut.

    • LastMajorAndMinor, qui exporte la dernière version principale et ses versions secondaires.

    Notez que LastMajor est la valeur par défaut.

  • CommandLineVerbose (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Récupère ou définit une valeur booléenne qui spécifie si vous souhaitez que les informations de la migration soient envoyées à une console de ligne de commande. La valeur par défaut est false.

  • FileCompression (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Récupère ou définit une valeur booléenne qui spécifie si le package de la migration de contenu est compressé à l'aide du protocole de compression CAB. La valeur par défaut est true ; la valeur par défaut implique la compression du package de migration du contenu.

  • IncludeSecurity (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Récupère ou définit une valeur d'énumération SPIncludeSecurity qui spécifie le nombre de rôles de sécurité utilisateur et la quantité de données d'appartenance de rôle à inclure dans le package de migration. L'énumération fournit trois valeurs :

    • All : spécifie l'exportation des appartenances utilisateur et des affectations de rôles tels que des rôles prêts à l'emploi (Concepteur de sites Web, par exemple), ainsi que d'éventuels rôles personnalisés qui émanent des rôles prêts à l'emploi. La liste de contrôle d'accès pour chaque objet est exportée vers le package de migration, ainsi que les informations utilisateur définies dans les serveurs DAP ou LDAP.

    • None : aucune information de rôle utilisateur ou de groupe de sécurité n'est exportée. Il s'agit de la valeur par défaut.

    • WssOnly : spécifie l'exportation des appartenances utilisateur et des affectations de rôles tels que des rôles prêts à l'emploi (Concepteur de sites Web, par exemple), ainsi que d'éventuels rôles personnalisés qui émanent des rôles prêts à l'emploi. La liste de contrôle d'accès pour chaque objet est exportée vers le package de migration ; cependant, les informations utilisateur définies dans les serveurs DAP ou LDAP ne sont pas exportées.

      La valeur par défaut est None.

  • LogFilePath (hérité deMicrosoft.SharePoint.Deployment.SPDeploymentSettings)

    Récupère ou définit une valeur qui spécifie le chemin d'accès complet vers le fichier journal pour l'opération de migration de contenu.

Paramètres d'exportation de migration sélective

  • CurrentChangeToken

    Récupère un jeton de modification (chaîne) qui se trouve dans le journal des modifications de l'opération d'exportation. Lors de l'exécution d'une migration sélective, le jeton de modification actif spécifie un point de départ indiquant les objets qui ont été modifiés depuis la dernière opération d'exportation. Ces objets sont alors sélectionnés pour la migration.

    Une fois l'opération de migration sélective terminée, enregistrez cette valeur. Ensuite, lors de la prochaine opération de migration sélective, passez cette valeur à la propriété ExportChangeToken.

  • ExportChangeToken

    Définit ou récupère la valeur de jeton de modification qui est passée à partir de la propriété CurrentChangeToken et qui a été enregistrée lorsque la dernière opération de migration sélective a été effectuée.

    Notez que la migration sélective prend en charge la suppression de champs sur les sites source et de destination lorsque (a) la propriété ExportMethod a la valeur ExportChanges, et lorsque (b) la propriété P:Microsoft.SharePoint.Deployment.SPImportSettings.RetainObjectIdentity sur l'objet SPImportSettings a la valeur true.

  • ExportMethod

    Fournit une valeur à partir de l'énumération SPExportMethodType qui spécifie s'il faut effectuer une migration complète, une exportation de tous les objets sur le site source (ExportAll), une exportation incrémentielle ou une migration sélective qui migre uniquement les objets qui ont été modifiés depuis la dernière migration (ExportChanges).

    Veillez à définir cette valeur à ExportChanges si vous souhaitez effectuer une migration sélective.

  • HaltOnWarning (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Définit ou extrait une valeur booléenne qui spécifie s'il faut suspendre la migration lorsqu'un avertissement est rencontré. Affectez la valeur false pour ignorer les avertissements et continuer la migration. La valeur par défaut est false.

  • HaltOnNonfatalError (hérité de Microsoft.SharePoint.Deployment.SPDeploymentSettings)

    Définit ou extrait une valeur booléenne qui spécifie s'il faut suspendre la migration lorsqu'une erreur (récupérable) est détectée. Affectez la valeur false pour ignorer les erreurs récupérables et continuer la migration. La valeur par défaut est false.

Paramètres d'exportation secondaires

  • AutoGenerateDataFileName

    Définit ou extrait une valeur booléenne qui spécifie si le nom de fichier du package de migration de contenu est généré automatiquement. Affectez la valeur true pour générer automatiquement le nom de fichier du package de migration de contenu. La valeur par défaut est false.

    Lorsque la valeur n'est pas true, le nom de fichier provient du paramètre baseFileName sur le constructeur de classe SPDeploymentSettings (SPDeploymentSettings).

    Lorsque l'exportation génère plusieurs fichiers .cmp, les noms de fichiers sont ajoutés numériquement. Par exemple, quand le paramètre baseFileName est « Mon_site_Web », et que l'opération d'exportation génère plusieurs fichiers .cmp, les packages de migration sont nommés « Mon_site_Web1.cmp », « Mon_site_Web2.cmp » et ainsi de suite.

  • DataFiles

    Récupère une collection en lecture seule de fichiers de données d'exportation retournés sous la forme d'un objet ArrayList (http://msdn.microsoft.com/fr-fr/library/system.collections.arraylist.aspx). La collection elle-même est remplie à l'aide la méthode CleanUpAutoGeneratedDataFiles sur la classe SPExport une fois que l'opération d'exportation est terminée.

  • ExcludeDependencies

    Définit ou extrait une valeur booléenne qui spécifie s'il faut exclure des objets dépendants du fichier de package (.cmp) de migration de contenu lors de l'exportation des objets de type SPFile ou SPListItem. Affectez la valeur true pour exclure les dépendances ; la valeur par défaut est false.

  • ExportPublicSchema

    Définit ou extrait une valeur booléenne qui spécifie s'il faut utiliser le format du schéma public lorsque vous exportez un champ de liste. Affectez la valeur true si l'exportation utilise le format public du schéma ; retourne false si la collection de champs d'éléments de liste est récupérée directement à partir de la base de données. La valeur par défaut est true.

    Bien que la récupération de la collection de champs directement à partir de la base de données soit plus performante, vous devez noter que le schéma de format qui est stocké dans la base de données est interne et peut changer d'une version à une autre.

  • FileMaxSize

    Définit ou récupère un entier qui spécifie la taille maximale du fichier de migration de contenu (.cmp) en mégaoctets (Mo). La valeur par défaut est 0 (zéro) Mo, ce qui indique l'absence de toute limite quant à la taille du package de migration.

    Lorsque vous exécutez l'opération d'exportation, et si le fichier d'exportation compressé dépasse la taille maximale spécifiée, la migration est alors divisée en plusieurs fichiers d'exportation.

  • LogExportObjectsTable

    Définit ou extrait une valeur booléenne qui spécifie s'il faut copier le contenu de la table temporaire qui contient les objets d'exportation dans le fichier journal d'exportation. Affectez la valeur true pour écrire la table d'exportation dans le fichier journal. La valeur par défaut est false.

    Vous devez uniquement utiliser cette propriété lorsque vous testez votre opération d'exportation, ou si vous devez résoudre des problèmes liés à l'exportation, dans la mesure où l'enregistrement de la table des objets entraîne un ralentissement des performances.

  • OverwriteExistingDataFile

    Définit ou extrait une valeur booléenne qui spécifie s'il faut remplacer un fichier de données dans un fichier de package (.cmp) de migration de contenu lors de la réexportation d'un fichier du même nom. Affectez la valeur true pour remplacer les fichiers existants.

    Si vous définissez cette propriété à false, et si le fichier de données existe déjà, l'opération d'exportation lève une exception. En outre, si la propriété a la valeur à true et si le fichier de données existant s'étend sur plusieurs fichiers de package de migration, la collection de fichiers entière est supprimée avant que l'exportation ne génère de nouveaux fichiers de sortie.

  • TestRun

    Définit ou extrait une valeur booléenne qui spécifie s'il convient d'effectuer une série de tests de l'opération d'exportation. Affectez la valeur true pour effectuer un test.

Exemple : exportation d'une collection de sites complète

Il existe deux méthodes pour exporter une collection de sites complète (c'est-à-dire, effectuer une migration complète) à l'aide des API de l'espace de noms Microsoft.SharePoint.Deployment. La première utilise l'objet SPExportSettings tandis que la seconde utilise l'objet SPSite.

Exporter à l'aide d'objets SPExportSettings

La première méthode pour exporter une collection de sites complète (SPSite) requiert la création d'un objet SPExportSettings pour définir les paramètres de configuration des opérations d'exportation que vous avez l'intention d'effectuer. Étant donné que nous ne sélectionnons pas d'objets spécifiques à exporter (ce que nous ferions en fait s'il s'agissait d'une migration sélective), l'opération exporte la collection de sites entière.

Ensuite, nous créons un objet SPExport qui repose sur le paramètre de configuration que nous venons de définir, puis nous lançons l'opération d'exportation en appelant la méthode Run() sur l'objet SPExport.

SPExportSettings settings = new SPExportSettings(); 
settings.SiteUrl = "http://localhost:SourceSiteCollection"; 
settings.ExportMethod = SPExportMethodType.ExportAll;  
settings.FileLocation = @"c:\export"; 
settings.FileCompression = false; 
settings.CommandLineVerbose = true; 

SPExport export = new SPExport(settings); 
export.Run();

Les propriétés des paramètres d'exportation sont entièrement documentées dans les sections ci-dessus. Toutefois, il existe quelques points importants à noter sur certaines de ces propriétés.

Propriété SiteUrl

Fournit l'URL absolue de la collection de sites source que vous souhaitez exporter. Notez que les API de migration ne peuvent pas accéder aux éléments qui se trouvent dans des collections de sites différentes lors d'une opération d'exportation unique.

Propriété ExportMethod

Nous avons fourni la valeur ExportAll, car nous exportons la collection de sites entière. Si nous exécutions une migration sélective, nous aurions fourni à la place la valeur ExportChanges ; en outre, nous devons fournir un jeton de modification d'exportation dans une autre valeur de propriété.

Propriété FileLocation

Fournit un chemin d'accès au dossier où l'opération stockera le contenu exporté. Cette valeur doit pointer vers un répertoire vide sur l'ordinateur de destination. Si le répertoire n'existe pas, il est créé pendant l'exportation.

Si vous utilisez la compression de fichiers, seuls les fichiers compressés sont stockés à cet emplacement. Sinon, les fichiers non compressés sont stockés dans le répertoire temporaire spécifié par la variable d'environnement système TMP. Lors de l'exportation de fichiers non compressés, vous devez vous assurer que ce répertoire temporaire dispose de suffisamment d'espace disponible.

Propriété FileCompression

Spécifie s'il faut exporter la collection de sites en tant qu'un ou plusieurs fichiers de package (.cmp) de migration compressé. Il s'agit de fichiers CAB simplement. Étant donné que la compression de la collection de sites peut prendre beaucoup de temps, il est recommandé de choisir de compresser le fichier d'exportation uniquement si nécessaire - par exemple, lors de l'exportation des fichiers d'archivage, ou lors du déplacement d'une collection de sites entière vers un nouvel ordinateur. S'il s'agit d'une migration sélective, ou d'une opération de copie/déplacement, par exemple, vous pouvez augmenter les performances en ne compressant pas les fichiers.

Propriété CommandVerbose

Il s'agit d'un indicateur qui permet l'enregistrement des opérations d'exportation, similaire à la sortie fournie lors de l'exécution de stsadm -o export.

Exporter à l'aide d'un objet SPSite

La seconde méthode pour exporter une collection de sites entière requiert l'ajout de l'objet SPSite pour notre collection de sites à la collection ExportObjects, SPExportObjectCollection. Cette approche permet d'obtenir le même résultat que l'approche précédente, où l'objet SPSite était implicitement sélectionné, car nous n'avons pas sélectionné de manière explicite des objets pour l'exportation.

SPSite site = new SPSite("http://localhost:SourceSiteCollection "); 

SPExportObject exportObject = new SPExportObject(); 
exportObject.Id = site.ID; 
exportObject.Type = SPDeploymentObjectType.Site; 

SPExportSettings settings = new SPExportSettings();  
settings.SiteUrl = "http://localhost:SourceSiteCollection "; 
settings.ExportMethod = SPExportMethodType.ExportAll;  
settings.FileLocation = @"c:\export"; 
settings.FileCompression = false; 
settings.ExportObjects.Add(exportObject); 

SPExport export = new SPExport(settings); 
export.Run();  

site.dispose();

Ces propriétés des paramètres d'exportation sont documentées entièrement dans les sections ci-dessus et dans les exemples traités dans le tableau ci-dessus. Toutefois, il existe quelques points importants qu'il convient de noter sur deux propriétés qui n'ont pas encore été abordées.

SPExportObject.Id

Fournit l'identificateur unique global (GUID) de l'objet destiné à l'exportation.

SPExportObject.Type

Spécifie le type de l'objet à exporter. Il existe six types d'objets SharePoint disponibles :

Site - objet SPSite (la collection de sites)

Web - objet SPWeb (souvent appelé le « site »)

Liste - objet SPList

Fichier - objet SPFile

Dossier - objet SPFolder

Élément de liste - objet SPListItem

Voir aussi

Afficher: