Disponible avec une licence Standard ou Advanced.
Installez et configurez IBM Db2 ainsi qu’un client ArcGIS et utilisez l’outil de géotraitement Activer une géodatabase d’entreprise ou un script Python pour créer une géodatabase dans une base de données Db2.
Lorsque vous créez une géodatabase depuis ArcGIS Pro 3.3, la version de la géodatabase est 11.3.0.
Conditions requises
Effectuez les opérations suivantes avant de créer une géodatabase dans Db2 on Linux, UNIX or Windows :
- Vérifiez que les versions d’ArcGIS, de Db2 et du système d’exploitation que vous voulez utiliser sont compatibles.
- Procurez-vous le client Db2 requis pour la connexion à la version de Db2 que vous utiliserez pour stocker la géodatabase.
- Procurez-vous un fichier de codes clés ArcGIS Server, qui est créé lorsque vous autorisez ArcGIS Server, et placez-le dans un emplacement accessible depuis le client ArcGIS que vous utiliserez pour créer la géodatabase.
- Installez et configurez Db2.
Installer et configurer Db2
Pour pouvoir exécuter l’outil Activer une géodatabase d’entreprise ou un script afin de créer une géodatabase dans Db2, vous (ou votre service informatique ou votre administrateur de base de données) devez installer et configurer le système de gestion de bases de données Db2.
Suivez d’abord les instructions fournies par IBM pour installer et configurer l’instance Db2. Ensuite, suivez les étapes ci-après pour configurer une base de données et un identifiant de connexion pour votre géodatabase :
- Créez un identifiant de connexion au système d’exploitation intitulé sde sur le serveur Db2.
Vous allez vous connecter à la base de données avec l'identifiant de connexion sde pour créer une géodatabase.
- Créez une base de données Db2 et inscrivez-la dans le module Spatial Extender.
- Accordez à l'utilisateur sde l'autorité DBADM dans la base de données.
- Créez un tablespace temporaire et accordez l’accès à ce tablespace aux utilisateurs de la géodatabase.
Le tablespace temporaire doit comporter au moins 8 Ko d’espace de page.
Dans l’exemple ci-après, un tablespace temporaire d’utilisateur nommé geospace est créé avec une taille de page de 8 Ko. Un groupe nommé geodatausers est autorisé à utiliser le tablespace. Il contient tous les utilisateurs de la base de données qui effectuent des opérations relatives à la géodatabase, comme la création d’archives de géodatabase, l’utilisation de regroupements d’entités et la création de grands ensembles de sélections qui génèrent des tables de fichiers journaux dans la géodatabase.
CREATE USER TEMPORARY TABLESPACE geospace PAGESIZE 8 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP; GRANT USE OF TABLESPACE geospace TO geodatausers WITH GRANT OPTION;
Configurez ensuite le client ArcGIS à partir duquel vous vous connecterez et créerez une géodatabase dans la base de données Db2.
Configurer les clients
Vous pouvez exécuter un script Python depuis ArcGIS Pro (Desktop Standard ou Desktop Advanced) ou ArcGIS Server (Enterprise Edition) pour créer une géodatabase. Pour exécuter l’outil de géotraitement Activer une géodatabase d’entreprise plutôt qu’un script, utilisez ArcGIS Pro.
Remarque :
Un fichier de codes clés (Enterprise) ArcGIS Server est requis pour autoriser la géodatabase dans la section suivante. Même si vous n’exécutez pas de script Python à partir d’une machine ArcGIS Server pour créer la géodatabase, vous devez installer et autoriser ArcGIS Server pour obtenir le fichier de codes de clés. Il peut être nécessaire de copier le fichier depuis l’ordinateur ArcGIS Server dans un emplacement auquel l’outil de géotraitement ou le script Python peut accéder.
- Installez le client ArcGIS que vous utiliserez pour créer la géodatabase.
Suivez les instructions des guides d'installation du logiciel.
- Dans la plupart des cas, le client ArcGIS est installé sur un ordinateur autre que le serveur Db2. Par conséquent, installez et configurez un client Db2 sur l’ordinateur du client ArcGIS.
Vous pouvez télécharger IBM Data Server Runtime Client for Db2 depuis My Esri ou utiliser votre propre installation du client Db2. Consultez la documentation Db2 pour en savoir plus sur l’installation. Si vous installez le client Db2 sur un système d’exploitation 64 bits, exécutez le fichier exécutable 64 bits. Celui-ci installe les fichiers 32 bits ainsi que les fichiers 64 bits, ce qui vous permet de vous connecter depuis le client ArcGIS 32 bits et depuis le client ArcGIS 64 bits.
- Si vous le souhaitez, cataloguez la base de données pour autoriser les connexions à l’aide d’un nom de source de données.
Consultez la documentation IBM Db2 pour des instructions relatives à la création d’un nom de source de données.
Il n’est pas nécessaire d’utiliser un nom de source de données pour la connexion depuis ArcGIS à une base de données Db2. À la place, vous pouvez utiliser une chaîne de connexion sans nom de source de données.
Vous pouvez maintenant créer une géodatabase.
Créer une géodatabase
Suivez l’une des méthodes ci-dessous pour créer une géodatabase dans la base de données Db2 :
Utilisez l’outil Activer une géodatabase d’entreprise.
Si vous avez installé et configuré ArcGIS Pro pour vous connecter à votre base de données Db2, vous pouvez exécuter l’outil Activer une géodatabase d’entreprise.
Procédez comme suit pour créer une géodatabase depuis ArcGIS Pro :
- Démarrez ArcGIS Pro.
- Connectez-vous à la base de données Db2 à l’aide de l’identifiant sde.
Enregistrez le mot de passe de l’utilisateur sde dans la boîte de dialogue Database Connection (Connexion à la base de données). Si vous omettez cette opération, le fichier de connexion ne fonctionnera pas avec l’outil Activer une géodatabase d’entreprise.
- Ouvrez l'outil Activer une géodatabase d'entreprise.
- Ajoutez le fichier de connexion à votre base de données Db2 dans la zone de texte Input Database (Base de données en entrée).
- Accédez au fichier de codes clés de ArcGIS Server qui a été créé lorsque vous avez autorisé ArcGIS Server et ajoutez-le dans la zone de texte Authorization File (Fichier d’autorisation).
Lorsque vous utilisez l’assistant pour autoriser ArcGIS Server, un fichier de codes clés est écrit sur l’ordinateur sur lequel le logiciel est installé. Si vous ne l’avez pas déjà fait, autorisez ArcGIS Server à créer ce fichier. Si vous avez autorisé ArcGIS Server sur une machine Linux, le fichier a été créé dans /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Si vous l’avez autorisé sur un serveur Microsoft Windows, le fichier a été créé dans Program Files\ESRI\License<release>\sysgen. Copiez ce fichier dans un emplacement accessible avec l'outil Activer une géodatabase d'entreprise.
- Cliquez sur Run (Exécuter).
Le fichier sde_setup.log contient des messages relatifs à la création de la géodatabase. Il est créé dans le répertoire spécifié pour la variable %TEMP% sur l’ordinateur sur lequel l’outil est exécuté. Si vous rencontrez un problème lors de la création d'une géodatabase, consultez ce fichier pour le résoudre.
Une géodatabase est créée dans la base de données Db2.
Créez ensuite des utilisateurs pour charger les données dans la géodatabase. Consultez le centre de documentation d’IBM Db2 pour en savoir plus sur la création d’utilisateurs.
Utiliser un script Python
Vous pouvez exécuter un script Python depuis un ordinateur client ArcGIS Pro (Desktop Standard ou Desktop Advanced) ou ArcGIS Server (Enterprise Edition) pour créer une géodatabase dans une base de données Db2.
Procédez comme suit pour exécuter un script Python afin de créer une géodatabase dans une base de données Db2 :
- Créez un fichier texte sur l’ordinateur du client ArcGIS, puis copiez-y le script suivant :
""" Name: enable_enterprise_gdb.py Description: Provide connection information to an enterprise database and enable enterprise geodatabase. Type enable_enterprise_gdb.py -h or enable_enterprise_gdb.py --help for usage """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") 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 ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # 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 database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.")) parser.print_help() sys.exit(3) if (license == ""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print(" \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.") sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to enable...") 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") # Process: Enable geodatabase... try: print("Enabling Enterprise Geodatabase...\n") arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) 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)
- Enregistrez le fichier avec l’extension .py.
- Exécutez le script en indiquant les options et informations propres à votre site.
Dans l’exemple ci-après, qui est exécuté depuis un ordinateur Microsoft Windows, le fichier enable_gdb.py est exécuté pour la base de données spdata dans l’instance db2prod. La connexion est établie avec l’identifiant de connexion sde et le mot de passe Tgdbst@rtsh3r3. Un fichier de codes de clés se trouvant dans l’emplacement ArcGIS Server par défaut permet d’autoriser la géodatabase.
enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
Voici un exemple d’exécution du script sur un ordinateur Linux :
/enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'
Conseil :
Type -h or --help at the command prompt to get syntax help.
Le fichier sde_setup.log contient des messages relatifs à la création de la géodatabase. Il est créé dans le répertoire spécifié pour votre variable TEMP ou TMP sur l’ordinateur sur lequel le script Python est exécuté. Si vous rencontrez un problème lors de la création d'une géodatabase, consultez ce fichier pour le résoudre.
Une géodatabase est créée dans votre base de données Db2.
Créez ensuite des utilisateurs pour charger les données dans la géodatabase. Consultez le centre de documentation d’IBM Db2 pour des instructions de création d’utilisateurs et d’octroi de privilèges en vue du chargement de données.
Vous avez un commentaire à formuler concernant cette rubrique ?