Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Spécifications
TfsPreUpgrade est uniquement pris en charge pour les déploiements Team Foundation Server qui :
- Disposez de leurs bases de données de collection pertinentes sur une édition Entreprise de SQL Server.
- Disposez de leurs bases de données de collection pertinentes sur SQL Server 2012 SP1 (ou version ultérieure) ou SQL Server 2014 CU3 (ou version ultérieure).
Pour plus d'informations, voir ci-dessous.
Présentation
Team Foundation Server 2015 inclut des modifications de schéma à un grand nombre de tables afin de prendre en charge le renommage des projets. Par conséquent, la mise à niveau vers Team Foundation Server 2015 peut prendre beaucoup de temps, en fonction de la taille de votre base de données. Étant donné que les mises à niveau TFS sont hors connexion, Microsoft fournit un outil, TfsPreUpgrade.exe, qui peut être utilisé pour effectuer les parties les plus coûteuses du travail de mise à niveau vers TFS 2015 alors que votre déploiement TFS 2013 est toujours en ligne. Vous n’avez pas besoin d’exécuter cet outil avant de procéder à la mise à niveau. Nous vous recommandons de l’exécuter pour les bases de données de collecte qui dépassent 1 To de taille pour réduire le temps pendant lequel TFS doit être hors connexion.
En règle générale, TfsPreUpgrade.exe fonctionne en créant de nouvelles copies des tables les plus affectées par les modifications de schéma présentes dans TFS 2015, puis en migrant les données des tables d’origine vers les nouvelles copies. Pour gérer l'activité utilisateur en cours, il met également en place des déclencheurs pour assurer le transfert continu des modifications des tables d'origine vers les nouvelles copies. Microsoft a optimisé TfsPreUpgrade.exe largement afin de réduire ses impacts sur les performances sur vos serveurs et utilisateurs, mais il peut et aura un impact sur les performances. Pour les opérations volumineuses telles que la création et la suppression de branches avec Team Foundation Version Control (TFVC), cela pourrait entraîner une insatisfaction des utilisateurs et même des timeouts de la base de données. Consultez ci-dessous pour obtenir la liste complète des opérations connues pour être considérablement affectées.
Par conséquent, TfsPreUpgrade.exe doit être démarrée le plus proche possible de la date planifiée de la mise à niveau hors connexion tout en ayant le temps de terminer son travail et doit être exécutée pendant une fenêtre où ces opérations volumineuses peuvent être évitées. De nombreux facteurs influencent la durée nécessaire pour que TfsPreUpgrade.exe soit terminé, mais nous prévoyons généralement que cela prenne deux semaines ou moins. Il est donc recommandé de commencer TfsPreUpgrade.exe deux semaines avant votre mise à niveau hors connexion planifiée. TfsPreUpgrade.exe pouvez fournir une estimation approximative du temps nécessaire à l’exécution en exécutant la commande Estimate.
TfsPreUpgrade.exe Estimate /TargetDatabaseNames:"{SQL Instance};{Collection Database Name}"
En raison de son fonctionnement, TfsPreUpgrade.exe nécessite des schémas de base de données source et cible stables. Par conséquent, elle ne peut être exécutée que sur les bases de données TFS 2013 Update 4 et Update 5. Si votre déploiement TFS n’est pas encore sur TFS 2013 Update 4 ou 5, vous devez effectuer une mise à niveau vers l’une de ces versions avant d’exécuter TfsPreUpgrade.exe. TFS 2013 Update 5 peut être téléchargé ici.
Que fait TfsPreUpgrade.exe ?
TfsPreUpgrade.exe effectue les actions suivantes :
- Activez la compression pour un petit nombre de tables qui n’ont pas été compressées en 2013, mais seront en 2015.
- Recherchez et corrigez une altération des données très rare mais bien comprise dans les données de contrôle de version TFS.
- Créez de nouvelles tables et migrez les données existantes vers celles-ci.
- Créer des déclencheurs.
- Mettez à jour les procédures stockées.
- Créez des index. (Les éditions d’entreprise de SQL Server sont requises pour permettre à ces opérations d’être effectuées en ligne.)
Étant donné qu’elle crée de nouvelles tables pour migrer des données de manière en ligne, TfsPreUpgrade.exe nécessite une quantité potentiellement importante d’espace disque supplémentaire pour les données et les journaux des transactions. Dans le cadre de l’exécution de TfsPreUpgrade.exe, il vérifie si cette quantité d’espace est déjà disponible. Si ce n’est pas le cas, il tentera de préallouter cet espace. En cas d’échec, une erreur s’affiche. TfsPreUpgrade.exe peut fournir une estimation de la quantité d’espace qu’il tentera de préallouer en exécutant la commande Estimation.
TfsPreUpgrade.exe Estimate /TargetDatabaseNames:"{SQL Instance};{Collection Database Name}"
Étant donné que TfsPreUpgrade.exe effectue des opérations potentiellement coûteuses (copie en bloc de données, créations d’index, etc.) elle peut avoir un impact sur les performances de votre serveur. Microsoft ne s’attend pas à ce que cet impact soit spectaculaire et nous avons optimisé les opérations effectuées par TfsPreUpgrade.exe pour réduire l’impact sur vos serveurs et vos utilisateurs. Si vous rencontrez des problèmes de performances pendant que TfsPreUpgrade.exe est en cours d’exécution, il peut toujours être annulé en tapant Ctrl-C. TfsPreUpgrade.exe est conçu de manière à ce que l'annulation de ce dernier interrompe les opérations qu'il effectue. Il ne doit jamais laisser votre base de données dans un mauvais état et peut toujours être réexécuté plusieurs fois si elle s'arrête avant d'avoir été menée à son terme.
Étant donné que TfsPreUpgrade.exe crée des déclencheurs qui conservent les copies d’origine et de nouvelles copies de tables synchronisées après la migration initiale, même après l’annulation de TfsPreUpgrade.exe il est possible qu’il continue d’avoir un impact sur les performances de votre serveur. Là encore, Microsoft ne s’attend pas à ce que cet impact soit spectaculaire et nous avons optimisé les performances de ces déclencheurs afin de réduire l’impact sur vos serveurs et vos utilisateurs. Si vous continuez à rencontrer des problèmes de performances après l’annulation de TfsPreUpgrade.exe, vous pouvez utiliser la commande TfsPreUpgrade.exe Revert pour annuler la plupart des actions effectuées par la commande Exécuter. Revert supprime tous les déclencheurs installés par la commande Exécuter, supprime toutes les nouvelles tables qu’il a créées, etc. Pour connaître l’ensemble des actions effectuées par l’exécution qui ne sont pas rétablies par Revert, voir ci-dessous.
Les opérations TFVC qui traitent d’un très grand nombre d’éléments sont les plus susceptibles d’être affectées négativement par les déclencheurs créés par TfsPreUpgrade.exe. Si vous le pouvez, évitez ces opérations TFVC pendant que TfsPreUpgrade.exe est en cours d’exécution et avant que la mise à niveau hors connexion vers TFS 2015 ne soit terminée.
- Création, suppression et renommage de branches.
- Détruisez les opérations qui ont un impact sur un grand nombre d’éléments.
- Suppression de projets qui utilisent TFVC.
Si vous avez besoin d’effectuer ces opérations, vous pouvez vous attendre à ce qu’elles prennent au moins deux fois plus de temps pour se terminer avec les déclencheurs TfsPreUpgrade en place.
Comment exécuter TfsPreUpgrade.exe?
La procédure recommandée pour l’exécution de TfsPreUpgrade.exe est la suivante :
Téléchargez TfsPreUpgrade.exe. Veuillez noter que la machine sur laquelle vous installez TfsPreUpgrade n’est pas importante tant qu’elle peut accéder à la ou les instances SQL appropriées ; elle est fournie sous forme compressée avec toutes ses dépendances.
Décompressez-le dans un répertoire local.
Déterminez les bases de données de collection sur lesquelles vous souhaitez exécuter TfsPreUpgrade.exe. Il peut être exécuté sur toutes les bases de données de collecte sans impact négatif sur leur capacité de mise à niveau, mais est généralement nécessaire uniquement sur les bases de données suffisamment volumineuses pour nécessiter un temps d’arrêt important pendant une mise à niveau hors connexion. Microsoft recommande d’utiliser TfsPreUpgrade.exe sur les bases de données dont la taille est supérieure à 1 To.
En tant qu’utilisateur qui est un sysadmin sur l’instance SQL (TfsPreUpgrade définit plusieurs indicateurs de trace pendant son exécution), exécutez la commande Exécuter :
TfsPreUpgrade.exe Exécuter /TargetDatabaseNames :"{INSTANCE SQL} ; {Nom de la base de données de collection}"
Si vous souhaitez exécuter TfsPreUpgrade.exe sur plusieurs bases de données de collection, vous pouvez utiliser plusieurs appels de TfsPreUpgrade.exe (auquel cas ils s’exécuteront en parallèle) ou spécifier plusieurs chaînes SQL séparées par des virgules / Collection Database dans un appel unique (auquel cas ils s’exécuteront séquentiellement).
TfsPreUpgrade.exe s’exécutera pendant un certain temps, en fonction de la taille des bases de données de collection sur laquelle elle s’exécute. Il signalera la progression en cours afin que vous puissiez avoir une idée de l'avancement et du temps restant. Une fois TfsPreUpgrade.exe terminée, les déclencheurs qu’il installe maintiendront toutes les modifications supplémentaires effectuées dues à la mise en ligne du serveur, en continuant à alimenter les tables migrées. Par conséquent, il n’est pas nécessaire de l’exécuter à nouveau avant d’effectuer votre mise à niveau hors connexion vers TFS 2015.
Statistiques d’attrition de code
Une option avancée que vous pouvez prendre en compte lors de l’exécution de TfsPreUpgrade.exe ignore la migration des statistiques d’attrition de code antérieures à un certain seuil. Les statistiques de fluctuations du code sont calculées par un processus en tâche de fond lorsque les modifications sont engagées dans TFVC et sont stockées dans l’une des tables migrées par TfsPreUpgrade.exe. Ces données sont ensuite transmises dans l’entrepôt et le cube et peuvent ensuite être utilisées dans les rapports. Pour plus d’informations, consultez ici.
Si les anciennes statistiques d’attrition de code ne vous intéressent pas (ou si des statistiques d’attrition de code ne vous intéressent pas), vous pouvez gagner du temps pendant l’exécution de TfsPreUpgrade.exe et l’exécution ultérieure de la mise à niveau hors connexion en ignorant la migration des statistiques antérieure à une date donnée. Pour ce faire, utilisez le paramètre facultatif /SkipCodeChurnBefore pour la commande Run. Par exemple, si vous souhaitez ignorer la migration des statistiques d’attrition de code antérieures au 1er janvier 2015, vous pouvez utiliser la ligne de commande suivante :
TfsPreUpgrade.exe Run /TargetDatabaseNames:"{SQL Instance};{Collection Database Name}" /SkipCodeChurnBefore:"1/1/2015"
Si vous utilisez cette option, les statistiques d’attrition de code pertinentes ne seront pas migrées et ne seront pas présentes dans l’entrepôt et le cube après votre mise à niveau hors connexion.
Mise à niveau hors connexion vers TFS 2015
Vous êtes maintenant prêt à effectuer votre mise à niveau hors connexion vers TFS 2015, pour lequel vous pouvez suivre les procédures normales de mise à niveau de TFS.
Consultez ci-dessous pour obtenir des données supplémentaires sur certaines opérations rarement effectuées qui sont bloquées par TfsPreUpgrade.exe et pour plus d’informations sur les modifications apportées à la base de données par TfsPreUpgrade.exe qui ne sont pas rétablies en exécutant TfsPreUpgrade.exe Rétablir.
Opérations bloquées
Au début de l’exécution de TfsPreUpgrade.exe un certain nombre de déclencheurs de « sécurité » sont mis en place pour bloquer les opérations autorisées par TFS 2013, mais qui ne sont plus autorisées par TFS 2015 ou qui provoqueraient des problèmes en présence des déclencheurs mis en place par TfsPreUpgrade.exe. Voici quelques-uns des éléments suivants :
- Suppression de projets. Il n’est pas recommandé de supprimer des projets une fois que vous avez exécuté TfsPreUpgrade.exe sur une base de données de collection. Si vous supprimez un projet, il échouera juste avant de finaliser la suppression, laissant le projet en cours de suppression. La suppression du projet sera à nouveau prise en charge une fois que vous effectuez une mise à niveau vers TFS 2015.
- Création d’espaces de travail avec références aux dossiers racines qui n’existent pas. Celles-ci échouent à cause de l'erreur TF10169. Notez qu’un scénario dans lequel cela peut apparaître se trouve dans des définitions de build dont les modèles d’espace de travail référencent les dossiers racines qui n’existent pas , dans ces scénarios, les builds peuvent échouer lors de la création de l’espace de travail avec l’erreur donnée. Ce scénario continuera d’être non pris en charge dans TFS 2015 en raison de modifications liées au renommage de Project, mais échouera avec un message d’erreur plus pertinent.
- Appel de VersionControlServer.CreateTeamProjectFolder() à l'aide d'un code écrit contre l'OM du client TFS. Cela échoue avec l’erreur TF10169. Ce scénario continuera d’être non pris en charge dans TFS 2015 en raison des modifications apportées au renommage du projet d’équipe, mais échouera avec un message d’erreur plus pertinent.
Exceptions à la réversion de TfsPreUpgrade.exe
L’exécution de TfsPreUpgrade.exe a plusieurs effets secondaires qui ne sont pas rétablis en exécutant TfsPreUpgrade.exe Rétablir. Dans la plupart des cas, toute pré-allocation d’espace de base de données et/ou de journal des transactions effectuée par TfsPreUpgrade.exe ne sera pas rétablie, ce qui signifie que vos fichiers de base de données peuvent être beaucoup plus volumineux qu’avant l’exécution de TfsPreUpgrade.exe. Toutefois, l’espace supplémentaire n’est pas utilisé, car les tables supplémentaires créées par TfsPreUpgrade.exe seront supprimées. Nous vous recommandons de laisser cet espace en place, car il sera naturellement rempli à mesure que la taille des données de vos fichiers de base de données monte, et parce qu’elle sera nécessaire finalement par la mise à niveau vers TFS 2015.
Les autres effets secondaires qui ne sont pas rétablis ne sont pas impactants et sont répertoriés ici uniquement pour vos informations. Ces modifications auraient été apportées par une mise à niveau vers TFS 2015 dans tous les cas et ne devraient pas avoir d’impact sur le fonctionnement de votre serveur ou sur sa mise à niveau éventuelle.
- Toutes les altérations détectées et corrigées dans les données de contrôle de version TFS ne seront pas rétablies.
- Une colonne ajoutée à tbl_Version par le script de détection d’altération et de correction ne sera pas supprimée.
- Les tables pour lesquelles la compression est activée ne l’auront pas désactivée à nouveau.