Disponible avec une licence Standard ou Advanced.
La configuration d'une géodatabase dépend des divers scénarios possibles sur votre site. Suivez les instructions correspondant aux scénarios applicables à votre organisation.
- Vous êtes administrateur de base de données et de géodatabase.
- L'administrateur Oracle configure la base de données et l'administrateur de géodatabase crée la géodatabase.
- Vous voulez stocker plusieurs géodatabases dans la même base de données Oracle.
Vous êtes administrateur de base de données et de géodatabase
Si vous êtes à la fois administrateur de base de données et de géodatabase et que vous connaissez le mot de passe des deux identifiants de connexion, vous pouvez utiliser l'outil de géotraitement Créer une géodatabase d'entreprise ou un script Python pour créer une géodatabase dans Oracle.
L'outil Créer une géodatabase d'entreprise vous permet de configurer facilement une géodatabase, car il crée la structure, le tablespace et l'utilisateur sde, puis accorde à ce dernier les privilèges requis. Pour ce faire, l'outil utilise les paramètres par défaut suivants :
- Création d'un utilisateur de base de données nommé sde
- Création d'un tablespace de 400 Mo dans l'emplacement par défaut d'Oracle et attribution de ce dernier à l'utilisateur sde
- Accorde les privilèges d'utilisateur SDE requis pour créer et mettre à niveau une géodatabase, supprimer des connexions à la base de données et importer des données avec Oracle Data Pump (Oracle 12c uniquement).
- Attribution de privilèges de paquetages nécessaires pour créer une géodatabase
- Création d'une géodatabase
Pour plus d'informations sur les privilèges requis, consultez la rubrique Privilèges pour les géodatabases dans Oracle.
Avant d'exécuter l'outil ou le script de création d'une géodatabase, vous devez configurer Oracle.
Configurer Oracle
Avant de créer une géodatabase, vous devez installer et configurer Oracle. La configuration de l'instance Oracle varie en fonction des besoins spécifiques de votre organisation. Consultez la documentation Oracle qui contient des informations sur l'installation et la configuration.
Vérifiez la configuration système requise d'ArcGIS avant de configurer une géodatabase pour vous assurer que l'association d'Oracle, d'ArcGIS et du matériel que vous souhaitez utiliser est bien prise en charge.
Si vous prévoyez d'utiliser SQL pour accéder aux données spatiales grâce aux fonctions Esri ST_Geometry ou si vous souhaitez utiliser le type ST_Raster, configurez le fichier extproc d'Oracle pour accéder à la bibliothèque de formes ST_Geometry d'Esri ou à ST_Raster respectivement.
Une fois Oracle installé et configuré, installez les clients ArcGIS et Oracle.
Configurer un client ArcGIS
Exécutez un script Python à partir d'ArcGIS for Desktop (Standard ou Avancé), ArcGIS Engine Runtime avec l'extension Geodatabase Update ou ArcGIS for Server pour créer une géodatabase. Pour exécuter l'outil de géotraitement Créer une géodatabase d'entreprise plutôt qu'un script, utilisez ArcGIS for Desktop.
Dans la plupart des cas, votre client ArcGIS sera installé sur un ordinateur autre que celui où Oracle est installé. Ainsi, pour vous connecter à l'instance Oracle, votre client Oracle doit être pris en charge sur l'ordinateur du client ArcGIS. Consultez la documentation Oracle pour déterminer quelle version du client Oracle vous devez installer pour vous connecter à la version d'Oracle que vous utilisez et pour savoir comment installer et configurer le client.
- Installez le client ArcGIS à utiliser pour créer la géodatabase.
Suivez les instructions des guides d'installation du logiciel.
- Installez et configurez un client Oracle sur l'ordinateur du client ArcGIS.
Si vous vous connectez à partir d'un client ArcGIS 32 bits, vous devez installer un client Oracle 32 bits. Cela s'applique même si vous installez l'application client ArcGIS sur un ordinateur doté d'un système d'exploitation 64 bits, avec une base de données et un système d'exploitation de serveur de 64 bits. Si vous vous connectez à partir d'un client ArcGIS 64 bits, vous devez installer un client Oracle 64 bits.
Vous pouvez obtenir le client Oracle Instant, Runtime ou Administrator auprès d'Oracle. Consultez la documentation Oracle pour connaître la procédure d'installation.
- Définissez la variable d'environnement de votre système d'exploitation ou du profil utilisateur de manière à inclure le chemin d'accès et le nom du répertoire dans lequel est installé le client Oracle.
- Sous Linux, définissez la variable d'environnement LD_LIBRARY_PATH.
Vous pouvez obtenir le client Oracle Instant, Runtime ou Administrator auprès d'Oracle. Consultez la documentation Oracle pour connaître la procédure d'installation.
. - Sous Windows, définissez la variable d'environnement PATH. Si ArcGIS for Server et ArcGIS for Desktopsont tous les deux installés sur le même ordinateur Windows, définissez la variable PATH de manière qu'elle liste le client 64 bits avant le client 32 bits. Par exemple, si votre client Oracle 32 bits est installé dans le répertoire c:\Program Files (x86)\Oracle et Oracle Instant Client 64 bits dans le répertoire c:\Program Files\Oracle, ajoutez les informations suivantes au début de la valeur de la variable PATH : C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- Sous Linux, définissez la variable d'environnement LD_LIBRARY_PATH.
- Si votre client ArcGIS était déjà en cours d'exécution, redémarrez-le pour qu'il reconnaisse le client Oracle et les nouvelles variables d'environnement.
- Vous pouvez vous connecter à Oracle à partir d'ArcGIS à l'aide d'une chaîne Easy Connect. Pour ce faire, vous devez configurer votre base de données Oracle pour qu'elle autorise les chaînes Easy Connect. Si le client Oracle complet est installé, mais que vous souhaitez utiliser la syntaxe Easy Connect pour vous connecter, veillez à ce que le fichier sqlnet.ora sur le client soit configuré de façon à autoriser l'utilisation d'Easy Connect et à ce que le serveur Oracle soit configuré pour autoriser la syntaxe Easy Connect. Pour plus d'informations, reportez-vous à la documentation Oracle.
Vous pouvez maintenant créer une géodatabase.
Créer une géodatabase
Vous pouvez exécuter l'outil Créer une géodatabase d'entreprise à partir d'ArcGIS for Desktop (Standard ou Advanced) ou exécuter un script Python à partir d'un client ArcGIS for Desktop, ArcGIS for Server ou ArcGIS Engine pour créer une structure, un tablespace, une géodatabase et un utilisateur SDE.
Exécuter l'outil Créer une géodatabase d'entreprise
Si vous avez accès à ArcGIS for Desktop, vous pouvez exécuter un outil de géotraitement pour créer la géodatabase.
- Démarrez ArcMap ou ArcCatalog.
- Ouvrez l'outil Créer une géodatabase d'entreprise.
Vous pouvez accéder à cet outil, qui se trouve dans jeu d'outils Administration de la géodatabase de la boîte à outils Gestion des données.
- Sélectionnez Oracle dans la liste déroulante Plateforme de la base de données.
- Fournissez les informations requises pour vous connecter à l'instance Oracle.
- Si vous avez déjà configuré le client Oracle pour utiliser un alias de réseau TNS, saisissez l'alias de service Net dans la zone de texte Instance.
- Si vous n'avez pas configuré l'alias de réseau du client Oracle et que vos base de données et client Oracle sont configurés pour utiliser des chaînes Easy Connect, saisissez la chaîne Easy Connect d'Oracle dans la zone de texte Instance.
Consultez la rubrique Connexion à Oracle à partir d'ArcGIS pour obtenir une liste de chaînes Easy Connect valides.
- Tapez le mot de passe de l'utilisateur système dans la zone de texte Mot de passe administrateur de géodatabase.
- Saisissez sde dans la zone de texte Administrateur de géodatabase.
Si l'utilisateur sde n'existe pas dans la base de données, l'outil le crée et lui accorde les privilèges requis pour créer une géodatabase. Si l'utilisateur existe déjà, les privilèges requis lui sont accordés.
- Saisissez un mot de passe pour l'utilisateur sde dans la zone de texte Mot de passe administrateur de géodatabase.
Si l'utilisateur sde existe dans la base de données, veillez à entrer le mot de passe correspondant à l'utilisateur existant, car cet outil ne modifiera pas le mot de passe. Si vous créez un utilisateur sde, le mot de passe que vous fournissez est utilisé lors de la création de l'utilisateur sde.
- Spécifiez un tablespace pour l'utilisateur sde.
- Si vous devez utiliser un tablespace préconfiguré pour le référentiel de géodatabase, saisissez son nom dans la zone de texte Nom du tablespace.
- Si vous souhaitez que l'outil crée un tablespace à votre place, saisissez un nom valide dans la zone de texte Nom du tablespace pour que l'outil crée un tablespace de 400 Mo à l'emplacement Oracle par défaut. Si vous n'entrez pas le nom d'un tablespace, un tablespace SDE_TBS est créé et défini comme tablespace par défaut pour l'utilisateur et ArcSDE.
- Pour spécifier un fichier d'autorisation, recherchez et choisissez le fichier de codes clés qui a été créé lorsque vous avez autorisé ArcGIS for Server Enterprise.
Ce fichier figure dans le dossier \\Program Files\ESRI\License<release#>\sysgen sur les serveurs Windows. 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.
Une géodatabase est créée dans votre base de données Oracle.
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.
Ensuite, créez un utilisateur autorisé à charger des données dans la géodatabase.
Exécuter un script Python
Vous pouvez copier, enregistrer et exécuter le script fourni ici pour créer une géodatabase à partir d'ArcGIS for Desktop (Standard ou Advanced), ArcGIS for Server (Standard ou Advanced) ou ArcGIS Runtime (avec l'extension Geodatabase Update).
-
Créez un fichier texte sur l'ordinateur du client ArcGIS, puis copiez-y le script suivant.
""" Name: create_enterprise_gdb.py Description: Provide connection information to a DBMS instance and create an enterprise geodatabase. Type create_enterprise_gdb.py -h or create_enterprise_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 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], 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 ("-D", dest="Database", type="string", default="none", help="Database name: Do not specify for Oracle") 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="Dbms_admin", type="string", default="", help="DBMS administrator user") parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password") parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema type applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and master sde geodatabase in Oracle") parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS for Server Enterprise authorized, and stored in \\Program Files\ESRI\License<release#>\sysgen on Windows or /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen on Linux") # 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 database = options.Database.lower() account_authentication = options.Account_authentication.upper() dbms_admin = options.Dbms_admin dbms_admin_pwd = options.Dbms_admin_pwd schema_type = options.Schema_type.upper() gdb_admin = options.Gdb_admin gdb_admin_pwd = options.Gdb_admin_pwd tablespace = options.Tablespace license = options.Authorization_file if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" 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 == "SQL_SERVER"): if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"): print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE.")) sys.exit(3) if (schema_type == "DBO_SCHEMA" and gdb_admin != ""): print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema...")) if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication")) sys.exit(3) if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""): print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication...")) else: if (schema_type == "DBO_SCHEMA"): print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema..." )) if( gdb_admin.lower() == ""): print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified.")) sys.exit(3) if( gdb_admin.lower() != "sde"): if (database_type == "ORACLE"): print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle...\n") else: print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type)) sys.exit(3) if( dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!")) sys.exit(3) if (account_authentication == "OPERATING_SYSTEM_AUTH"): print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." )) # Get the current product license product_license=arcpy.ProductInfo() # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase 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 creating enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to create...") arcpy.AddMessage("+++++++++") try: print("Creating enterprise geodatabase...\n") arcpy.CreateEnterpriseGeodatabase_management(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, 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) #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 Linux, le fichier create_gdb.py est exécuté pour une instance Oracle avec un SID orcl. L'instance est exécutée sur le serveur gisprod. Un utilisateur sde avec le mot de passe Tgdbst@rtsh3r3 est créé, ainsi qu'un tablespace appelé sde. Un fichier de codes clés se trouvant dans l'emplacement par défaut d'ArcGIS Server permet d'autoriser la géodatabase.
./create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.3/sysgen/keycodes
Dans cet exemple, le même script est exécuté sur un ordinateur Windows :
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Vous possédez maintenant une géodatabase dans Oracle.
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é.
Si les clients doivent accéder à la géodatabase avec SQL, configurez le processus extproc d'Oracle pour autoriser l'accès.
Ensuite, créez un utilisateur autorisé à charger des données dans la géodatabase.
L'administrateur Oracle configure la base de données et l'administrateur de géodatabase crée la géodatabase
Si la personne qui crée la géodatabase ne connaît pas le mot de passe de l'administrateur de base de données, ce dernier peut configurer la base de données et l'utilisateur sde pour que l'administrateur de géodatabase puisse s'y connecter à l'aide de l'identifiant de connexion sde et créer une géodatabase dans la base de données avec l'outil de géotraitement Activer une géodatabase d’entreprise ou un script Python.
L'outil Activer une géodatabase d’entreprise utilise en entrée un fichier de connexion à une base de données et crée les vues, les fonctions, les procédures et les tables système de la géodatabase dans la structure de l'utilisateur sde.
Configurer Oracle
Avant que l'administrateur de géodatabase ne crée une géodatabase, l'administrateur de base de données doit effectuer les opérations suivantes :
- Installer et configurer l'instance Oracle. La configuration de l'instance Oracle varie en fonction des besoins spécifiques de votre organisation. Consultez la documentation Oracle qui contient des informations sur l'installation et la configuration.
Vérifiez la configuration système requise d'ArcGIS avant de configurer une géodatabase pour vous assurer que le système de gestion de base de données, ArcGIS et le matériel que vous souhaitez utiliser sont bien pris en charge. Pour obtenir la liste des privilèges requis, reportez-vous à la rubrique Privilèges pour les géodatabases dans Oracle.
- Créer une structure et un utilisateur sde.
- Accorder à l'utilisateur sde les privilèges nécessaires pour créer une géodatabase.
- Créer un tablespace pour l'utilisateur sde et le définir comme tablespace par défaut de l'utilisateur sde.
- Accorder des privilèges d'exécution sur les paquetages nécessaires à la création de la géodatabase. Reportez-vous à la rubrique Privilèges pour les géodatabases dans Oracle pour obtenir une liste des paquetages.
En outre, si vous prévoyez d'utiliser SQL pour accéder aux données spatiales grâce aux fonctions Esri ST_Geometry ou si vous souhaitez utiliser le type ST_Raster, l'administrateur de bases de données doit configurer le fichier extproc d'Oracle pour accéder à la bibliothèque de formes ST_Geometry d'Esri ou à ST_Raster respectivement.
Une fois Oracle installé et configuré, l'administrateur de géodatabase peut installer les clients Oracle et ArcGIS.
Configurer un client ArcGIS
Vous pouvez exécuter un script Python à partir d'ArcGIS for Desktop (Standard ou Avancé), 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 Créer une géodatabase d'entreprise plutôt qu'un script, utilisez ArcGIS for Desktop.
Dans la plupart des cas, votre client ArcGIS sera installé sur un ordinateur autre que celui où Oracle est installé. Ainsi, pour vous connecter à l'instance Oracle, votre client Oracle doit être pris en charge sur l'ordinateur du client ArcGIS. Consultez la documentation Oracle pour déterminer quelle version du client Oracle vous devez installer pour vous connecter à la version d'Oracle que vous utilisez et pour savoir comment installer et configurer le client.
- Installez le client ArcGIS à utiliser pour créer la géodatabase.
Suivez les instructions des guides d'installation du logiciel.
- Installez et configurez un client Oracle sur l'ordinateur du client ArcGIS.
Si vous vous connectez à partir d'un client ArcGIS 32 bits, vous devez installer un client Oracle 32 bits. Cela s'applique même si vous installez l'application cliente ArcGIS sur un ordinateur doté d'un système d'exploitation 64 bits, avec une base de données et un système d'exploitation de serveur de 64 bits. Si vous vous connectez à partir d'un client ArcGIS 64 bits, vous devez installer un client Oracle 64 bits.
Vous pouvez obtenir le client Oracle Instant, Runtime ou Administrator auprès d'Oracle. Consultez la documentation Oracle pour connaître la procédure d'installation.
- Définissez la variable d'environnement de votre système d'exploitation ou du profil utilisateur de manière à inclure le chemin d'accès et le nom du répertoire dans lequel est installé le client Oracle.
- Sous Linux, définissez la variable d'environnement LD_LIBRARY_PATH.
- Sous Windows, définissez la variable d'environnement PATH. Si ArcGIS for Server et ArcGIS for Desktopsont tous les deux installés sur le même ordinateur Windows, définissez la variable PATH de manière qu'elle liste le client 64 bits avant le client 32 bits. Par exemple, si votre client Oracle 32 bits est installé dans le répertoire c:\Program Files (x86)\Oracle et Oracle Instant Client 64 bits dans le répertoire c:\Program Files\Oracle, ajoutez les informations suivantes au début de la valeur de la variable PATH : C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- Si votre client ArcGIS était déjà en cours d'exécution, redémarrez-le pour qu'il reconnaisse le client Oracle et les nouvelles variables d'environnement.
- Vous pouvez vous connecter à Oracle à partir d'ArcGIS à l'aide d'une chaîne Easy Connect. Pour ce faire, l'administrateur de base de données doit configurer la base de données Oracle pour qu'elle autorise les chaînes Easy Connect. Si le client Oracle complet est installé, mais que vous souhaitez utiliser la syntaxe Easy Connect pour vous connecter, vérifiez que le fichier sqlnet.ora sur le client est configuré de sorte à autoriser l'utilisation d'Easy Connect et que l'administrateur de base de données a configuré le serveur Oracle pour qu'il autorise la syntaxe Easy Connect. Pour plus d'informations, reportez-vous à la documentation Oracle.
Vous pouvez maintenant créer une géodatabase.
Créer une géodatabase
L'administrateur de géodatabase peut exécuter l'outil Activer une géodatabase d'entreprise à partir d'ArcGIS for Desktop (Standard ou Advanced) ou exécuter un script Python à partir d'un client ArcGIS for Desktop, ArcGIS for Server ou ArcGIS Engine pour créer une géodatabase dans la base de données existante.
Exécutez l'outil Activer une géodatabase d'entreprise.
Si vous avez accès à ArcGIS for Desktop, vous pouvez exécuter l'outil Activer une géodatabase d'entreprise pour créer une géodatabase.
- Démarrez ArcMap ou ArcCatalog.
- Connectez-vous à la base de données Oracle en tant qu'utilisateur sde à partir de l'arborescence du Catalogue.
N'oubliez pas d'enregistrer le mot de passe de l'utilisateur 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.
La fenêtre Activer une géodatabase d’entreprise s'ouvre et le champ Connexion à la géodatabase en entrée est renseigné pour afficher le nom du fichier de connexion et son emplacement.
- Accédez au fichier d'autorisation 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 ordinateur Linux, le fichier de codes clés 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.
Une géodatabase est créée dans la base de données.
L'outil crée le fichier journal GDBCreateGeodatabase<#>.log dans le répertoire spécifié pour la variable %TEMP% sur l'ordinateur où 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.
Si les clients doivent accéder à la géodatabase avec SQL, configurez le processus extproc d'Oracle pour autoriser l'accès.
Ensuite, créez un utilisateur autorisé à charger des données dans la géodatabase.
Exécuter un script Python
Pour créer la géodatabase en exécutant un script à partir d'une installation ArcGIS for Server, ArcGIS for Desktop ou ArcGIS Engine sur un ordinateur Windows, utilisez le script fourni ici.
- 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 Linux, le fichier enable_gdb.py est exécuté pour une instance Oracle avec un SID orcl. L'instance est exécutée sur le serveur gisprod. 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 ORACLE -i gisprod/orcl --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.3/sysgen/keycodes
Dans cet exemple, le même script est exécuté sur un ordinateur Windows :
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l \\Program Files\ESRI\License10.3\sysgen\keycodes
La base de données Oracle contient maintenant une géodatabase.
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é.
Si les clients doivent accéder à la géodatabase avec SQL, configurez le processus extproc d'Oracle pour autoriser l'accès.
Ensuite, créez un utilisateur autorisé à charger des données dans la géodatabase.
Vous voulez stocker plusieurs géodatabases dans la même base de données Oracle
Une fois la géodatabase créée dans la structure de l'utilisateur sde (également appelée géodatabase sde principale) à l'aide des procédures décrites dans les sections précédentes, d'autres utilisateurs peuvent créer une géodatabase dans leurs structures. Vous pouvez autoriser d'autres utilisateurs à créer leurs propres géodatabases pour regrouper ou séparer des données appartenant à différents projets ou équipes.
Les règles suivantes s'appliquent aux géodatabases des structures des utilisateurs :
- L'utilisateur qui l'a créée est propriétaire de la géodatabase. Cet utilisateur est l'administrateur de cette géodatabase et nécessite les mêmes privilèges d'administrateur de géodatabase. Pour connaître les privilèges de l'administrateur de géodatabase, consultez la rubrique Privilèges pour les géodatabases dans Oracle.
- Un utilisateur ne peut posséder qu'une seule géodatabase.
- Seul le propriétaire de la géodatabase de structure utilisateur peut posséder des données dans cette géodatabase.
- Si un utilisateur possède une géodatabase, il ne peut pas posséder de données dans la géodatabase principale ArcSDE.
- Si un utilisateur possède des données dans la géodatabase principale ArcSDE, il ne peut pas posséder de données dans la géodatabase de structure utilisateur.
- Le temps nécessaire à la connexion à la base de données Oracle augmentera avec le nombre de géodatabases de structure utilisateur que vous créez et utilisez. Ceci est particulièrement vrai si les géodatabases de structure utilisateur contiennent un mélange de tables de géodatabase et de tables non inscrites auprès de la géodatabase.
Vous pouvez utiliser tous les outils ou scripts susmentionnés pour créer une géodatabase de structure utilisateur une fois la géodatabase sde principale créée.
- Créer une géodatabase d'entreprise : comme nous l'avons indiqué dans cette rubrique, l'utilisateur de l'outil Créer une géodatabase d'entreprise doit connaître le mot de passe de l'utilisateur sys. C'est donc l'administrateur de base de données qui doit exécuter cet outil. Veillez à spécifier le nom du propriétaire de la structure pour l'administrateur de géodatabase.
- Activer une géodatabase d’entreprise : si vous ne connaissez pas le mot de passe de l'utilisateur sys, l'administrateur de base de données peut vous accorder les privilèges nécessaires pour créer une géodatabase. Vous pouvez ensuite vous connecter à la géodatabase avec votre identifiant de connexion, puis exécuter l'outil Activer une géodatabase d'entreprise ou un script pour créer une géodatabase dans votre structure.