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.
Installez une nouvelle version du client ArcGIS ou appliquez un service pack, un patch ou un correctif à une installation existante, puis mettez à niveau la géodatabase.
Effectuez les étapes requises avant la mise à niveau, puis mettez à niveau votre 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
Lorsque vous mettez à niveau un système d'entreprise, y compris une géodatabase, planifiez à l'avance. Testez la nouvelle version sur un serveur de développement ou de test pour vérifier qu'elle fonctionne avec toutes vos applications clientes.
Lorsque vous vous êtes assuré que le nouveau système fonctionne comme attendu, 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 ces tâches.
Vérifiez les éléments suivants :
- La mise à niveau des géodatabases de structure d’utilisateur n’est plus prise en charge. Pour le moment, vous pouvez mettre à niveau la géodatabase sde, mais ne pouvez pas effectuer la mise à niveau de géodatabases de structure d’utilisateur. Vous pouvez encore vous connecter aux géodatabases de structure d’utilisateur sans pouvoir les mettre à niveau.
- 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.4.x, 10.5.x, 10.6.x, 10.7.x, 10.8.x ou 10.9.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.
- 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.
- Si vous comptez effectuer la mise à niveau d’une géodatabase de version 10.4.x, supprimez au préalable tous les localisateurs de cette géodatabase.
- Le stockage ST_Raster n’est plus pris en charge. Vous devez convertir les données ST_Raster existantes dans un autre format avant d’effectuer la mise à niveau.
- Vérifiez que le paramètre Oracle OPEN_CURSORS est défini sur une valeur élevée, telle que 2000, et que le paramètre est synchronisé avec la géodatabase.
- Lorsque vous mettez à niveau la géodatabase vers la version actuelle, la géodatabase utilise uniquement des tables temporaires globales pour les tables de fichiers journaux.
- Si la géodatabase utilise une version Oracle 12.1.0.1 et que vous souhaitez utiliser le versionnement de branche, vous devez passer à une version Oracle prenant en charge le versionnement de branche avant de mettre à niveau la géodatabase. Le fait de passer à une version d’Oracle prise en charge avant de réaliser la mise à niveau créera des tables système de versionnement de branche dans la géodatabase.
La liste de contrôle suivante décrit les étapes à suivre avant de mettre à niveau votre géodatabase :
- Consultez la configuration requise ArcGIS pour Oracle afin de vérifier qu’Esri prend en charge l’association des versions Oracle et ArcGIS que vous souhaitez utiliser.
- Vérifiez que la géodatabase peut être mise à niveau.
Pour ce faire, installez la version du client ArcGIS vers laquelle vous souhaitez migrer sur 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 ArcGIS Server (édition Enterprise), 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 # Create a connection to the geodatabase. arcpy.CreateDatabaseConnection_management("/tmp/", "egdb_connection.sde", "ORACLE", "myogdb", "DATABASE_AUTH", "sde", "mysdepassword", "SAVE_USERNAME") # Import ArcPy and check the geodatabase release. import arcpy 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.
- Assurez-vous que le composant Oracle Text est installé.
Le composant Text est installé par défaut dans Oracle ; toutefois, si vous n’avez pas procédé à une installation par défaut, il n’a peut-être pas été installé.
Pour voir s’il est installé, exécutez l’instruction SQL suivante en étant connecté en tant que SYSTEM ou qu’un utilisateur doté de privilèges DBA dans la base de données :
Si aucun enregistrement n'est renvoyé, le composant Text n'est pas installé. Exécutez l’installation Oracle pour l’installer.SELECT owner, object_name FROM all_objects WHERE object_type = 'PACKAGE' AND object_name = 'CTX_DDL';
- Créez une sauvegarde de la base de données.
- Supprimez les fonctionnalités personnalisées éventuellement ajoutées aux tables système de géodatabase en dehors d'ArcGIS, telles que des déclencheurs ou des index supplémentaires.
La procédure de mise à niveau ne peut pas prendre en compte les personnalisations que vous apportez aux tables système. Si de telles personnalisations empêchent l'altération de la structure d'une table système, la mise à niveau échoue.
- Accordez à l'administrateur de géodatabase les autorisations nécessaires pour mettre à niveau une géodatabase.
Pour obtenir la liste des privilèges requis, reportez-vous à la rubrique Privilèges pour les géodatabases dans Oracle.
- Si vous accédez directement aux données à partir de SQL, remplacez la bibliothèque st_shapelib existante sur votre serveur Oracle par la nouvelle version de la bibliothèque.
Téléchargez le nouveau fichier st_shapelib à partir de My Esri.
Veillez à utiliser la bibliothèque appropriée au système d’exploitation de votre serveur Oracle.
Si vous placez la bibliothèque dans un répertoire différent sur le serveur Oracle que celui où elle se trouvait précédemment, vous devez reconfigurer l’extproc de manière à ce qu’il pointe sur le nouvel emplacement de bibliothèque. Redémarrez ensuite le processus d’écoute Oracle. Pour plus d’informations, consultez la rubrique Configurer le processus extproc de Oracle.
- Vérifiez qu’aucun utilisateur n’est actuellement connecté à la géodatabase que vous mettez à niveau. Si la géodatabase contient des géodatabases de structure d’utilisateur, assurez-vous également que personne n’est connecté à l’une des géodatabases de schéma utilisateur.
Pour afficher la liste des utilisateurs actuellement connectés à votre 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 l’ordinateur du client ArcGIS pour mettre à niveau la géodatabase.
Remarque :
Vous devez utiliser la syntaxe de connexion actuelle pour vous connecter à la géodatabase à mettre à niveau. Le processus de mise à niveau échoue si vous utilisez l'ancienne syntaxe de connexion. Reportez-vous à la rubrique Connexion à Oracle à partir de ArcGIS pour plus d’informations.
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 (ou la mise à niveau) échoue, les résultats sont également consignés dans le fichier GDBUpgrade.log dans le répertoire 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 du système.
Exécuter un script
Pour mettre à niveau la géodatabase, copiez un de ces scripts d'exemple dans un éditeur de texte. Modifiez les valeurs des variables pour qu'elles correspondent aux informations de votre site.
- Si vous avez un fichier de connexion à une base de données qui établit la connexion en tant qu’utilisateur sde, copiez le script correspondant à votre système d’exploitation, collez-le dans un éditeur de texte et modifiez-le pour insérer les informations propres à votre site, puis enregistrez le fichier, fermez-le et exécutez-le :
# Name: upgradesdegdb_example.py # Description: Connect from a Windows computer # with an existing database connection file # 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: Connect from a Linux or UNIX computer # with an existing database connection file # 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")
- Si vous n'avez pas de fichier de connexion à une base de données sur l'ordinateur à partir duquel vous rédigez le script de mise à niveau, vous pouvez copier le script suivant et indiquer les informations propres à votre site sur la ligne de commande :
Si, par exemple, vous avez enregistré le fichier texte sous le nom gdbupgrade et que votre base de données est myogdb, saisissez les informations suivantes à l’invite de commande :""" Name: upgrade_gdb.py Description: Provide connection information to an Enterprise geodatabase and upgrade the geodatabase Type upgrade_gdb.py -h or upgrade_gdb.py --help for usage """ # Import system modules import arcpy import os import optparse import sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 2.0; valid for 10.1 only") #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS',''], default="", help="Type of enterprise DBMS: SQLSERVER, ORACLE, or POSTGRESQL.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password") parser.add_option ("--upgrade", dest="Upgrade", type="choice", choices=['TRUE', 'FALSE'], default="FALSE", help="Upgrade Options (case-sensitive): TRUE=Perform Pre-requisite check and upgrade geodatabase, FALSE=Perform Pre-requisite check only. Default=FALSE") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print("%s: error: %s\n" % (sys.argv[0], "No command options given")) parser.print_help() sys.exit(3) #Usage parameters for spatial database connection to upgrade account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password do_upgrade = options.Upgrade database = options.Database.lower() database_type = options.Database_type.upper() instance = options.Instance if (database_type == ""): print("\nDatabase type must be specified!\n") parser.print_help() sys.exit(3) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # Get the current product license product_license=arcpy.ProductInfo() # Checks required license level to upgrade if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Enterprise geodatabase upgrade requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.") sys.exit("Re-authorize ArcGIS before upgrading.") else: print("\n" + product_license + " license available! Continuing to upgrade...") arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print("\nCreating Database Connection File...\n") # Process: Create Database Connection File... # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Check whether geodatabase needs upgrade isCurrent = arcpy.Describe(Connection_File_Name_full_path).currentRelease if isCurrent == True: print("The geodatabase is already at the current release and cannot be upgraded!") sys.exit("Upgrade did not run.") # Process: Upgrade geodatabase... try: if do_upgrade.lower() == "true": print("Upgrading Geodatabase...\n") arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="UPGRADE") for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") else: print("Running Pre-Requisite Check...\n") arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="NO_UPGRADE") for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print("\n") parser.print_help() parser.exit(2)
gdbupgrade --DBMS ORACLE -i myogdb --auth DATABASE_AUTH -u sde -p mysdepassword --upgrade TRUE
Versions et versions de branche Oracle
Les tables système de version de branche sont uniquement créées si vous créez ou mettez à niveau votre géodatabase en utilisant une version Oracle dans laquelle ArcGIS prend en charge les versions de branche. Ce qui signifie que si la géodatabase utilise une version de Oracle ne prenant pas en charge le versionnement de branche, vous ne pouvez pas utiliser le versionnement de branche.
Si la version de géodatabase prend en charge le versionnement de branche mais que la version de la géodatabase est Oracle 12.1.0.1, le fait de mettre à niveau Oracle ou de restaurer la géodatabase vers une version de Oracle prise en charge ne mettra pas en œuvre le versionnement de branche. Vous devez mettre à niveau la géodatabase après être passé à une version Oracle plus récente prise en charge.
Vous avez un commentaire à formuler concernant cette rubrique ?