Disponible avec une licence Standard ou Advanced.
Pour créer une géodatabase dans Db2 sur le système d'exploitation z (z/OS), procédez comme suit :
- Installez et configurez des clients ArcGIS et Db2.
- Configurez les ZPARM sur Db2.
- Créez un utilisateur sde et un groupe sur z/OS.
- Créez au moins deux bases de données.
- Accordez des privilèges à l'utilisateur sde et au groupe d'utilisateurs.
- Personnalisez le fichier dbtune.sde pour spécifier le stockage de la table système.
- Créer une géodatabase.
Configurer les clients
Vous devez installer un client ArcGIS pour obtenir les fichiers nécessaires à la configuration de la base de données Db2 et pour exécuter l’outil ou le script permettant de créer une géodatabase.
Vous pouvez exécuter un script Python à partir d'ArcGIS Desktop (Desktop Standard ou Desktop Advanced), ArcGIS Engine Geodatabase Update ou ArcGIS Server (édition Enterprise), 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 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. Les fichiers 32 et 64 bits sont installés pour que vous puissiez vous connecter à partir de la version 32 bits et 64 bits des clients ArcGIS.
- 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.
Configurez ensuite le système Db2.
Configurer les ZPARM
Pour exécuter ArcGIS comme client distribué d'IBM Db2 sur z/OS, la ressource de données réparties (DDF, Distributed Data Facility) doit être démarrée. Pour optimiser les performances de la géodatabase avec ArcGIS et d'autres clients, les valeurs DB2 ZPARM suivantes sont fortement recommandées :
- Connectez-vous à Db2 comme administrateur sous z/OS.
- Définissez les paramètres suivants dans la section DSN6FAC de DSNTIJUZ :
- CMTSTAT=INACTIVE
- IDTHTOIN=3600
- TCPKPALV=120
- Définissez les paramètres suivants dans la section DSN6SYSP de DSNTIJUZ :
- CONDBAT=10000
- EXTSEC=YES
- IMPDSDEF=YES
- IXQTY=0
- MAXDBAT=1000
- TSQTY=0
- XMLVALA=204800
- XMLVALS=10240
- Vous devez également définir l'environnement WLM par défaut approprié dans WLMENV de la section DSN6SPRM de DSNTIJUZ. Les voici :
- CACHEDYN=YES
- EDMDBDC=102400
- EDMPOOL=32000
- EDMSTMTC=102400
- EDM_SKELETON_POOL=102400
- Après avoir modifié les valeurs ZPARM ci-dessus, vous devez également vous assurer que SYSLMOD dans l'étape de travail DSNTIZL pointe vers le nom du jeu de données approprié afin que Db2 charge le module ZPARM approprié au démarrage.
- Arrêtez et démarrez Db2 à l'aide de la commande SET SYSPARM pour valider les changements.
Créer un utilisateur sde et un groupe d'utilisateurs
Créez un identifiant d'autorisation principal dans RACF sur z/OS (sde par défaut) avec l'accès à TSO (Time Sharing Option). Pour plus d'informations sur la création d'utilisateurs via RACF, reportez-vous au manuel d'administration de z/OS.
IBM recommande l'utilisation d'un identifiant d'autorisation secondaire (un groupe d'utilisateurs dans RACF sous z/OS) pour simplifier la gestion des droits utilisateur. Vous devez activer les identifiants d'autorisation secondaires sous z/OS. Pour plus d'informations sur l'activation des autorisations secondaires, reportez-vous au manuel z/OS.
Seul l'utilisateur responsable de la gestion des données SIG et de la géodatabase doit se connecter en tant qu'utilisateur sde. Les autres utilisateurs d'ArcGIS doivent se connecter en utilisant d'autres comptes.
- A l'aide de RACF, créez un compte utilisateur autonome nommé sde dans le système.
- A l'aide de RACF, créez un groupe d'utilisateurs, par exemple GISUSERS, sous z/OS. Pour ce faire, envoyez le nom du groupe sur VM14 à votre EC.
- A l'aide de RACF, ajoutez l'utilisateur sde au groupe GISUSERS.
Pour se connecter à la géodatabase en tant qu'utilisateur sde à partir de l'ordinateur client Windows sur lequel le client ArcGIS est installé, un utilisateur Windows local portant le même nom (sde) que celui spécifié pour la connexion au serveur doit être présent sur l'ordinateur client. Cet utilisateur ne nécessite aucune autorisation spéciale. Pour créer un utilisateur Windows local, reportez-vous à la documentation de Microsoft Windows.
Créer des bases de données
Vous devez avoir au moins deux bases de données Db2 dans le sous-système de base de données spatialisé pour stocker une géodatabase : une pour stocker le référentiel de géodatabase ArcSDE et une pour stocker les données utilisateur. La base de données contenant le référentiel de géodatabase et celle(s) contenant les données utilisateur constituent ensemble une géodatabase. Par conséquent, vous devez créer ces bases de données avant de pouvoir configurer la géodatabase.
Le script JCL ESRIUDFI est fourni pour créer des bases de données et des fonctions définies par l'utilisateur (UDF) pour la création de la géodatabase. Le script est installé dans le dossier DatabaseSupport\DB2zOS du répertoire d'installation du client ArcGIS. Vous devez personnaliser le script ESRIUDFI à l'aide d'informations spécifiques à votre implémentation, puis télécharger et exécuter ce script sur z/OS. Le script proprement dit inclut les instructions de création de deux bases de données.
Pour personnaliser ESRIUDFI, reportez-vous aux instructions fournies dans le script JCL et vérifiez soigneusement les points suivants :
- Dans le corps du fichier ESRIUDFI se trouvent plusieurs chaînes qui doivent être remplacées par les paramètres d'environnement utilisateur correspondants. Des informations concernant la signification de chaque chaîne et la façon de les remplacer sont présentées au début du script ESRIUDFI.
- L'étape ESRIS1 du script JCL crée deux bases de données et définit l'assemblage. Pour utiliser ces lignes, vous devez supprimer leurs marques de commentaire et fournir des noms et des assemblages pour les bases de données. Un exemple est fourni ci-dessous :
CREATE DATABASE SDEDBR00 CCSID UNICODE; CREATE DATABASE SDEDBU00 CCSID UNICODE;
- Vous pouvez éventuellement créer un groupe de stockage afin de gérer les données de géodatabase plus efficacement. Vous devez créer le groupe de stockage en premier, par conséquent, vous devez ajouter une ligne supplémentaire au script ESRIUDFI, comme indiqué dans l'exemple suivant :
CREATE STOGROUP ARCSDE VOLUMES (VOL1, VOL2, …) VCAT SDECAT; CREATE DATABASE SDEDBR00 CCSID UNICODE STOGROUP ARCGIS; CREATE DATABASE SDEDBU00 CCSID UNICODE STOGROUP ARCGIS;
- Une fois que vous avez fini de personnaliser le script ESRIUDFI, vous devez l'envoyer sur l'ordinateur cible.
Lorsque la tâche d'installation d'ESRI UDF est terminée, vous pouvez remarquer qu'au cours de la dernière étape, la liaison de package et la création de la procédure SDE.SDE_UPDT_LMOD ont abouti mais ont renvoyé des avertissements. Ces avertissements indiquent que les tables système de géodatabase n'ont pas encore été créées dans la base de données. Vous pouvez les ignorer car lorsque vous exécuterez l'outil Activer la géodatabase d'entreprise, les tables seront créées et l'objet package sera automatiquement lié lorsqu'il sera référencé par l'outil.
- Spatialisez le sous-système de base de données. Pour plus d'instructions, consultez la documentation Db2 z/OS.
Accorder des privilèges
Les autorisations et privilèges de base de données doivent être accordés à l'utilisateur sde et au groupe d'utilisateurs ArcGIS une fois les bases de données et les fonctions UDF créées.
- Ouvrez une session sur Db2 en tant que SYSADM pour accorder les privilèges nécessaires au groupe d'utilisateurs ArcGIS que vous configurez et à l'utilisateur sde. Dans ces exemples d'instruction GRANT, le nom du groupe est GISUSERS.
GRANT SELECT ON SYSIBM.SYSTABAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDBAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSROUTINES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABCONST TO GISUSERS; GRANT SELECT ON SYSIBM.SYSINDEXES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSKEYS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCOLUMNS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSCHECKS TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSCHEMAAUTH TO GISUSERS; GRANT SELECT ON SYSIBM.SYSTABLES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSSEQUENCES TO GISUSERS; GRANT SELECT ON SYSIBM.SYSDUMMY1 TO GISUSERS;
- Accordez les privilèges supplémentaires suivants à l'utilisateur sde :
GRANT BINDADD TO SDE; GRANT CREATE ON COLLECTION SDE TO SDE; GRANT DBADM ON DATABASE <repository_database_name> TO SDE; GRANT DBADM ON DATABASE <user_data_database_name> TO SDE;
- Accordez l'autorisation suivante au rôle PUBLIC :
GRANT EXECUTE ON PACKAGE SYSPROC.* TO PUBLIC;
- L'instruction suivante est requise si vous utilisez un groupe de stockage. Dans cet exemple, le nom du groupe de stockage est ARCGIS.
GRANT USE OF STOGROUP ARCGIS to SDE;
Personnaliser dbtune.sde
Modifiez le fichier dbtune.sde stocké dans <ArcGIS client installation directory>\DatabaseSupport\DB2zOS pour qu'il désigne le sous-système de votre base de données.
Le fichier dbtune.sde renseigne la table système de géodatabase DBTUNE avec les mots-clés, les paramètres et les valeurs de configuration qui contrôlent le stockage physique des tables dans la base de données. Pour les bases de données Db2 sous z/OS, vous devez modifier ce fichier avant d'exécuter l'outil de géotraitement Activer une géodatabase d'entreprise afin de spécifier dans quelle base de données seront créées certaines tables.
- Ouvrez le fichier dbtune.sde dans un éditeur de texte.
- Supprimez les marques de commentaire et modifiez les valeurs des chaînes de configuration suivantes sous le mot-clé DATA_DICTIONARY pour indiquer dans quelle base de données vous souhaitez que des tables système de géodatabase spécifiques soient créées. Des suggestions de paramètres sont fournies ci-après. La base de données nommée SDEDBR00 constitue la base de données de stockage des tables de référentiel de géodatabase.
B_STORAGE "IN DATABASE SDEDBR00" MVTABLES_MODIFIED_TABLE "IN DATABASE SDEDBR00" STATES_TABLE "IN DATABASE SDEDBR00" STATE_LINEAGES_TABLE "IN DATABASE SDEDBR00" VERSIONS_TABLE "IN DATABASE SDEDBR00" XML_INDEX_TAGS_TABLE "IN DATABASE SDEDBR00"
- Vérifiez que les valeurs des paramètres BLOB_OPTION et CLOB_OPTION sous le mot-clé DEFAULTS sont des chaînes vides.
- Supprimez les marques de commentaire et modifiez les valeurs des chaîne de configuration suivantes sous le mot-clé DEFAULTS pour indiquer dans quelle base de données vous souhaitez que les objets spécifiques associés aux données définies par l'utilisateur soient créés.
Des suggestions de paramètres sont fournies ci-après. La base de données nommée SDEDBU00 est la base de données qui va stocker les données définies par l'utilisateur dans le sous-système de base de données.
AUX_STORAGE "IN DATABASE SDEDBU00" A_STORAGE "IN DATABASE SDEDBU00" BLK_STORAGE "IN DATABASE SDEDBU00" BND_STORAGE "IN DATABASE SDEDBU00" B_STORAGE "IN DATABASE SDEDBU00" D_STORAGE "IN DATABASE SDEDBU00" RAS_STORAGE "IN DATABASE SDEDBU00"
- Supprimez les marques de commentaire et modifiez les valeurs des chaînes de configuration suivantes sous le mot-clé LOGFILE_DEFAULTS pour indiquer dans quelle base de données vous souhaitez que les tables de fichier journal soient créées.
LD_STORAGE "IN DATABASE SDEDBU00" LF_STORAGE "IN DATABASE SDEDBU00" SESSION_STORAGE "IN DATABASE SDEDBU00"
- Enregistrez et fermez le fichier dbtune.sde.
Vous pouvez maintenant créer une géodatabase dans le sous-système Db2.
Créer une géodatabase
Utilisez une des méthodes suivantes pour créer une géodatabase dans Db2 sous z/OS.
Utilisez l'outil Activer une géodatabase d'entreprise.
Si vous avez installé et configuré ArcGIS Desktop pour vous connecter à votre sous-système Db2, vous pouvez exécuter l’outil Enable Enterprise Geodatabase (Activer une géodatabase d’entreprise).
- Démarrez ArcMap ou ArcCatalog.
- Connectez-vous à 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 à la base de données dans la zone de texte Base de données en entrée.
- Accédez au fichier de codes clés ArcGIS Server que vous avez créé lorsque vous avez autorisé ArcGIS Server et ajoutez-le à la zone de texte Fichier d'autorisation.
Lorsque vous utilisez l'assistant d'autorisation d'ArcGIS Server, un fichier de codes clés est écrit sur l'ordinateur où le logiciel est installé. Si vous avez autorisé ArcGIS 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. Copiez ce fichier dans un emplacement accessible avec l'outil Activer une géodatabase d'entreprise. Si vous ne l'avez pas déjà fait, autorisez ArcGIS Server à créer ce fichier.
- Cliquez sur OK pour exécuter l'outil.
Le fichier sde_setup.log contient des messages relatifs à la création de la géodatabase, qui est créé 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 la création d'une géodatabase, consultez ce fichier pour le résoudre.
Une géodatabase est créée dans votre sous-système Db2.
A présent, créez des utilisateurs autorisés à créer des données.
Utiliser un script Python
Vous pouvez exécuter un script Python à partir d’un ordinateur client ArcGIS Desktop (Desktop Standard ou Desktop Advanced), ArcGIS Server (Enterprise Edition) ou ArcGIS Engine (avec l’extension Geodatabase Update) pour créer une géodatabase dans un sous-système Db2.
Pour exécuter un script Python permettant de créer une géodatabase dans un sous-système 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 """ # 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 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 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\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'
Le fichier sde_setup.log contient les messages associés à la création de la géodatabase, qui 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 sous-système Db2.
Créez maintenant des utilisateurs autorisés à charger des données.