Mettre à niveau une géodatabase d’entreprise dans SQL Server

Disponible avec une licence Standard ou Advanced.

La mise à niveau d'une géodatabase d'entreprise consiste à mettre à jour les tables système de géodatabase, les procédures stockées, les types et les fonctions pour bénéficier des nouvelles fonctionnalités et des corrections de bogues. Il peut aussi être nécessaire de mettre à niveau la base de données si la version que vous utilisez n’est plus prise en charge pour les clients ArcGIS que vous utilisez.

Installez une nouvelle version de ArcGIS Pro ou ArcGIS Server ou appliquez un service pack, un patch ou un correctif à une installation existante, puis mettez à niveau la géodatabase.

Remarque :

Même si vous ne mettez pas à niveau la géodatabase, il se peut que la version de base de données que vous utilisez ne soit plus prise en charge avec la version actuelle du logiciel ArcGIS. Vérifiez toujours la configuration système requise pour vous assurer que vous utilisez une version de base de données prise en charge. Si la version de base de données n’est plus prise en charge, il peut être nécessaire de mettre à niveau la géodatabase. Plus vous laissez passer de temps entre les mises à niveau, plus le processus de mise à niveau est complexe.

Si vous mettez à niveau la géodatabase à l’aide de ArcGIS Pro 3.5, la version de la géodatabase mise à niveau est 11.5.0.x.

Effectuez les étapes requises ci-dessous avant la mise à niveau, puis mettez à niveau la géodatabase à l’aide de l’outil de géotraitement Mettre à niveau la géodatabase ou d’un script Python.

Avant de procéder à la mise à niveau

Planifiez à l’avance la mise à niveau d’un système d’entreprise, notamment une géodatabase. Testez la nouvelle version sur un serveur de développement ou de test pour vérifier qu'elle fonctionne avec toutes vos applications clientes.

Une fois que vous vous êtes assuré que le nouveau système fonctionne comme prévu, programmez la mise à niveau ; assurez-vous que le personnel nécessaire est disponible pour effectuer la mise à niveau et qu’il dispose des autorisations nécessaires pour effectuer les tâches qui lui sont attribuées.

Vérifiez les éléments suivants :

  • Les clients ArcGIS Pro 2.2 et versions antérieures et les clients ArcGIS 10.6.1 et versions antérieures ne peuvent pas se connecter à des géodatabases de version 11.x dans Microsoft SQL Server. Ne mettez pas à niveau la géodatabase si un utilisateur dans votre organisation continue d’accéder à la géodatabase à l’aide de ces versions de client.
  • Lorsque vous mettez à niveau une géodatabase de version 10.9.x ou antérieure dans SQL Server, le nom de la base de données ne figure plus dans les noms complets des tables et des classes d’entités. Par exemple, une classe d’entités nommée productdata.dataowner.inventory dans une géodatabase de version 10.8.x sera nommée dataowner.inventory après la mise à niveau de la géodatabase.
  • Les mises à niveau des versions bêta ou des préversions du logiciel ne sont pas prises en charge.
  • Vous pouvez effectuer une mise à niveau directement à partir d’une géodatabase 10.6.x, 10.7.x, 10.8.x, 10.9.x ou 11.x si la version de votre base de données est prise en charge pour la version ArcGIS vers laquelle vous effectuez la mise à niveau.

    Si la version de SQL Server n’est pas prise en charge pour la version de géodatabase à partir de laquelle vous procédez à la mise à niveau et la version de géodatabase vers laquelle vous effectuez la mise à niveau, il se peut que vous deviez mettre à niveau la base de données et la géodatabase plusieurs fois avant de pouvoir mettre à niveau la géodatabase vers la version la plus récente. Plus vous attendez entre les mises à niveau de base de données, plus vous aurez à effectuer de mises à niveau pour obtenir la dernière version de base de données.

    Par exemple, dans le scénario suivant, vous devez mettre à niveau la base de données et la géodatabase :

    Une géodatabase 10.6.1 dans SQL Server 2016 peut nécessiter plusieurs mises à niveau.

    Pour chaque mise à niveau de géodatabase intermédiaire, suivez les instructions de mise à niveau pour la version de géodatabase appropriée, puis testez la géodatabase à mesure que vous passez d’une version à une autre. De même, suivez les instructions de mise à niveau du fournisseur de base de données pour chaque version de base de données et testez la géodatabase à mesure que vous passez d’une version à une autre.

  • Il n’existe aucun mécanisme formel permettant de rétrograder une géodatabase vers une version antérieure. Si, après avoir effectué une mise à niveau vers une version plus récente, vous voulez rétrograder la géodatabase, vous pouvez restaurer la base de données à partir d’un fichier de sauvegarde contenant l’ancienne version de la géodatabase.
  • Lorsque vous mettez à niveau la géodatabase vers la version actuelle d’ArcGIS, l’outil Mettre à niveau la géodatabase définit les options de base de données ALLOW_SNAPSHOT_ISOLATION et READ_COMMITTED_SNAPSHOT de SQL Server sur ON. Ce paramétrage est requis pour les géodatabases dans SQL Server.

La liste de contrôle suivante décrit les étapes à suivre avant de mettre à niveau votre géodatabase :

  1. Prenez connaissance de la configuration requise d’ArcGIS pour Microsoft SQL Server afin de vérifier qu’Esri prend en charge l’association des versions SQL Server, du pilote ODBC et d’ArcGIS que vous souhaitez utiliser.
  2. Lisez la rubrique Compatibilité client/géodatabase pour comprendre les implications de l’utilisation de versions de client ArcGIS mixtes et déterminer si des types de jeux de données spécifiques doivent être mis à niveau séparément.
  3. Déterminez si la géodatabase peut être mise à niveau.

    Pour ce faire, installez la version du client ArcGIS que vous souhaitez migrer vers un ordinateur. Si vous installez ArcGIS Pro, vous pouvez vous connecter à la géodatabase et ouvrir la boîte de dialogue Database Properties (Propriétés de la base de données) pour déterminer si la géodatabase peut être mise à niveau. Si vous installez le composant ArcGIS Server (Enterprise Edition), vous pouvez utiliser la fonction ArcPy Describe pour déterminer si la géodatabase peut être mise à niveau.

    # Open Python.
    cd /arcgis/server/tools
    ./python
    
    # Import ArcPy.
    import arcpy
    
    # Create a connection to the geodatabase.
    arcpy.CreateDatabaseConnection_management("/tmp/",
                                              "egdb_connection.sde",
                                              "SQL_SERVER",
                                              "prod9",
                                              "DATABASE_AUTH",
                                              "sde",
                                              "mysdepassword",
                                              "SAVE_USERNAME",
                                              "myssgdb")
    
    # Check the geodatabase release.
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    
    print(isCurrent)

    Si la valeur False est renvoyée, vous pouvez mettre à niveau la géodatabase. Si la valeur True est renvoyée, il est inutile de mettre à niveau la géodatabase. N'exécutez pas les étapes suivantes.

  4. Créez une sauvegarde de la base de données.
  5. Supprimez les fonctionnalités personnalisées éventuellement ajoutées aux tables système de la géodatabase en dehors d’ArcGIS, telles que les déclencheurs, la participation à la réplication SQL Server ou les index supplémentaires.

    La procédure de mise à niveau ne peut pas tenir compte des personnalisations que vous apportez aux tables système. Si de telles personnalisations empêchent la modification d'une table système, la mise à niveau échoue.

  6. Assurez-vous que l’identifiant de connexion que vous utilisez pour mettre à niveau la géodatabase possède les privilèges appropriés.

    Reportez-vous à la rubrique Privilèges pour les géodatabases dans SQL Server pour prendre connaissance des privilèges requis.

    Remarque :

    N'ajoutez pas l'utilisateur SDE au rôle sysadmin.

  7. Assurez-vous qu’aucune connexion n’est établie à la géodatabase que vous mettez à niveau.

    Pour afficher la liste des utilisateurs actuellement connectés à la géodatabase, ouvrez la boîte de dialogue Geodatabase Administration (Administration de géodatabase) dans ArcGIS Pro.

Vous pouvez maintenant mettre à niveau la géodatabase.

Mettre à niveau la géodatabase

Vous pouvez utiliser l’outil Mettre à niveau la géodatabase dans ArcGIS Pro ou exécuter un script Python sur un ordinateur ArcGIS Pro ou ArcGIS Server pour mettre à niveau votre géodatabase.

Remarque :

Si la géodatabase contient des données versionnées de branche, des étapes supplémentaires requises après la mise à niveau peuvent s’avérer nécessaires. Pour plus d’instructions, reportez-vous à la rubrique Fonctionnement de l’outil Mettre à niveau la géodatabase.

Utiliser l'outil Mettre à niveau la géodatabase

Ouvrez l’outil de géotraitement Upgrade Geodatabase (Mettre à niveau la géodatabase) de l’une des manières suivantes :

  • le jeu d'outils Administration de la géodatabase de la boîte à outils Data Management,
  • le bouton Run Upgrade (Exécuter la mise à niveau) dans l’onglet General (Général) de la boîte de dialogue Database Properties (Propriétés de la base de données) de ArcGIS Pro

Si vous ouvrez l'outil à partir de la boîte de dialogue Propriétés de la base de données, la zone de texte Géodatabase en entrée contient déjà les informations nécessaires à une connexion à la géodatabase.

Esri recommande de laisser les options Pre-requisites check (Exécuter une recherche de prérequis) et Upgrade geodatabase (Mettre à niveau la géodatabase) activées. De cette façon, l’outil vérifie si les conditions préalables à la mise à niveau sont réunies avant la mise à niveau de la géodatabase.

Le contrôle préalable détecte d’autres connexions actives à la géodatabase, détermine si l’utilisateur qui tente d’établir la connexion a des privilèges suffisants pour mettre à niveau la géodatabase, garantit que la base de données peut prendre en charge des colonnes XML, s’assure que tous les jeux de données peuvent être ouverts et que la base de données et bibliothèques sont à la même version. Si les conditions préalables ne sont pas toutes remplies, l'outil s'arrête. Vous devez résoudre tous les problèmes avant d'exécuter à nouveau la mise à niveau.

Les résultats de ce contrôle sont signalés dans la boîte de dialogue de l'outil de géotraitement. Si la vérification échoue, les résultats sont également consignés dans le fichier GDBUpgrade.log dans le dossier c:\Users\<user name>\AppData\Local\ESRI\<ArcGIS product>.

Si tous les contrôles aboutissent, l’outil poursuit la mise à niveau. L'état du contrôle préalable et de la mise à niveau est indiquée dans la boîte de dialogue de progression de l'outil de géotraitement. Si la mise à niveau échoue, des informations sont consignées dans le fichier GDBUpgrade.log. Des informations supplémentaires sont consignées dans le fichier sde_setup.log dans le répertoire TEMP de utilisateur. Si aucun répertoire temporaire n’est configuré pour l’utilisateur, le répertoire TEMP du système est utilisé.

Exécuter un script

Pour mettre à niveau la géodatabase à l’aide d’un script Python, copiez l’exemple de script ci-après, collez-le dans un éditeur de texte et modifiez-le pour utiliser les informations propres à votre site, puis enregistrez le fichier, fermez-le et exécutez-le.

Conseil :

Pour plus d’informations sur l’exécution de Python à partir d’une machine ArcGIS Server, reportez-vous à la rubrique ArcGIS Server et ArcPy.

Les exemples supposent que vous disposez d’un fichier de connexion à une base de données existant qui vous permet de vous connecter en tant qu’administrateur de la géodatabase. Si vous ne disposez pas d’un fichier de connexion, créez-en un avant de procéder à la mise à niveau.

# Name: upgradesdegdb_example.py
# Description: Uses existing database connection file
# on a Windows computer to run prerequisite check
# and upgrade an enterprise geodatabase.

# Import arcpy module
import arcpy
 
# Local variables:
Output_Workspace = "C:\\ArcGIS\connection_files\<Connection file>"
Default_gdb = "C:\\ArcGIS\connection_files\<Connection file>"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
# Name: upgradesdegdb_example.py
# Description: Uses existing database connection file
# on a Linux computer to run prerequisite check
# and upgrade an enterprise geodatabase.

# Import arcpy module
import arcpy
 
# Local variables:
Output_Workspace = "<user>/connections/<Connection_file>"
Default_gdb = "<user>/connections/<Connection_file>"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")