Disponible avec une licence Standard ou Advanced.
Installez et configurez IBM DB2, puis utilisez l'outil de géotraitement Activer une géodatabase d'entreprise ou un script Python pour créer des géodatabases dans une base de données DB2.
Cette rubrique présente la création d'une géodatabase dans DB2 sur des serveurs Linux, UNIX ou Windows. Reportez-vous à la rubrique Configurer une géodatabase dans DB2 sur z/OS pour obtenir des instructions sur la configuration d'une géodatabase dans DB2 sur le système d'exploitation z (z/OS).
Configurer DB2
Avant de pouvoir exécuter l'outil Activer une géodatabase d’entreprise ou un script permettant de créer une géodatabase dans DB2, vous devez installer et configurer le système de gestion de base de données DB2. Vérifiez la configuration système requise d'ArcGIS avant de configurer une géodatabase pour vous assurer que la base de données, ArcGIS et le matériel que vous souhaitez utiliser sont bien pris en charge.
Suivez les instructions fournies par IBM pour installer et configurer l'instance DB2. Suivez ensuite les étapes ci-dessous pour configurer une base de données et un identifiant de connexion à utiliser avec votre géodatabase.
-
Créez une ouverture de session de système d'exploitation nommée 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 avec le module Spatial Extender.
- Accordez à l'utilisateur sde l'autorité DBADM dans la base de données.
Configurez ensuite un client ArcGIS à partir duquel vous pourrez vous connecter et créer une géodatabase dans la base de données DB2.
Configurer un client ArcGIS
Exécutez un script Python à partir d'ArcGIS for Desktop (Standard ou Advanced), ArcGIS Engine Runtime avec l'extension Geodatabase Update ou ArcGIS for Server (Standard ou Advanced) 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 for Desktop.
- Installez le client ArcGIS à utiliser pour créer la géodatabase.
Suivez les instructions des guides d'installation du logiciel.
- Dans la plupart des cas, votre client ArcGIS sera installé sur un ordinateur autre que le serveur DB2. Par conséquent, installez et configurez un client DB2 sur l'ordinateur client ArcGIS.
Vous pouvez télécharger IBM Data Server Runtime Client for DB2 à partir de My Esri ou utiliser votre propre installation du client DB2. Pour obtenir des instructions d'installation, consultez la documentation DB2. Si vous installez le client DB2 sur un système d'exploitation 64 bits, exécutez le fichier exécutable 64 bits qui installera à la fois les fichiers 32 bits et 64 bits.
- Vous pouvez vous connecter à une base de données DB2 à partir d'ArcGIS à l'aide d'une chaîne de connexion DSNless. Toutefois, pour vous connecter à l'aide d'un nom de source de données, vous devez cataloguer la base de données, ce qui permettra de configurer le nom de la source de données. Consultez la documentation IBM DB2 pour savoir comment créer un nom de source de données.
Vous pouvez maintenant créer une géodatabase.
Créer une géodatabase
Utilisez une des méthodes suivantes pour créer une géodatabase dans votre base de données DB2 :
Utilisez l'outil Activer une géodatabase d'entreprise.
Si vous avez installé et configuré ArcGIS for Desktop pour vous connecter à votre base de données DB2, vous pouvez exécuter l'outil Activer une géodatabase d’entreprise.
- Démarrez ArcMap ou ArcCatalog.
-
Connectez-vous à la base de données DB2 à partir de l'arborescence du Catalogue. Connectez-vous avec l'identifiant de connexion sde.
N'oubliez pas d'enregistrer le mot de passe de l'utilisateur sde dans la boîte de dialogue Connexion à la base de données.
- Cliquez sur la connexion avec le bouton droit de la souris, puis sélectionnez Activer une géodatabase.
L'outil Activer une géodatabase d'entreprise s'ouvre.
- Ajoutez le fichier de connexion à une base de données pour votre base de données DB2 dans la zone de texte Base de données en entrée.
- Accédez au fichier de codes clés ArcGIS for Server que vous avez créé lorsque vous avez autorisé ArcGIS for Server et ajoutez-le à la zone de texte Fichier d’autorisation.
Lorsque vous utilisez l'assistant d'autorisation d'ArcGIS for Server, un fichier de codes clés est écrit sur le serveur où le logiciel est installé. Si vous avez autorisé ArcGIS for Server sur un système 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 Windows, le fichier a été créé dans Program Files\ESRI\License<release>\sysgen. Si vous ne l'avez pas déjà fait, autorisez ArcGIS for Server à créer ce fichier.
- Cliquez sur OK pour exécuter l'outil.
Un fichier journal correspondant à la création de la géodatabase (GDBCreateGeodatabase<#>.log) est écrit dans le répertoire spécifié pour votre variable %TEMP% sur l'ordinateur sur lequel l'outil est exécuté. Si vous rencontrez un problème lors de l'exécution de l'outil, consultez ce fichier journal 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. Pour savoir comment créer des utilisateurs, consultez le centre d'information IBM DB2.
Utiliser un script Python
Vous pouvez exécuter un script Python à partir d'un ordinateur client ArcGIS for Desktop (Standard ou Advanced), ArcGIS for Server (Standard ou Avancé) ou ArcGIS Engine (avec l'extension Geodatabase Update) pour créer une géodatabase dans une base de données DB2.
Pour exécuter un script Python permettant de créer une géodatabase dans une base de données DB2, procédez comme suit :
- 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 Author: Esri """ # 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=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQLSERVER, 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) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # 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 for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for 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 suivant, exécuté sur un ordinateur Windows, le fichier enable_gdb.py est exécuté pour la base de données spdata sur l'instance db2prod. La connexion est établie avec l'identifiant de connexion SDE et le mot de passe Tgdbst@rtsh3r3. Un fichier de codes clés se trouvant dans l'emplacement par défaut d'ArcGIS Server 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\License10.3\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/License10.3/sysgen/keycodes
Un fichier journal correspondant à la création de la géodatabase (GDBCreateGeodatabase<#>.log) est écrit dans le répertoire spécifié pour votre variable TEMP ou TMP sur l'ordinateur sur lequel le script est exécuté.
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. Pour savoir comment créer des utilisateurs et accorder des privilèges de chargement des données, consultez le centre d'information IBM DB2.