Disponible con una licencia Standard o Advanced.
Para crear una geodatabase en Db2 en el sistema operativo z (z/OS), realice lo siguiente.
- Instale y configure los clientes de ArcGIS y Db2.
- Configure los ZPARM en Db2.
- Cree un usuario sde y un grupo en z/OS.
- Cree dos bases de datos como mínimo.
- Conceda privilegios al usuario sde y al grupo.
- Personalice el archivo dbtune.sde para especificar el almacenamiento de las tablas del sistema.
- Cree una geodatabase.
Configurar clientes
Debe instalar un cliente de ArcGIS para obtener los archivos necesarios para la configuración de la base de datos de Db2 y ejecutar la herramienta o el script para crear una geodatabase.
Puede ejecutar un script de Python desde ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Engine Geodatabase Update o ArcGIS Server (enterprise edition) para crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de un script, use ArcGIS Desktop.
- Instale el cliente de ArcGIS que desea usar para crear la geodatabase.
Siga las instrucciones que se proporcionan en las guías de instalación de software.
- El cliente de ArcGIS se instalará en un equipo diferente al servidor Db2 en la mayoría de los casos; por consiguiente, instale y configure el cliente de Db2 en el equipo cliente de ArcGIS.
Puede descargar el IBM Data Server Runtime Client para Db2 desde My Esri, o bien usar su propia instalación del cliente de Db2. Consulte las instrucciones de instalación en la documentación de Db2. Si va a instalar el cliente de Db2 en un sistema operativo de 64 bits, ejecute el ejecutable de 64 bits; instala los archivos de 32 y 64 bits, lo que le permite conectarse desde clientes de ArcGIS de 32 y 64 bits.
- Mediante una cadena de conexión DSNless puede conectarse a la base de datos Db2 desde ArcGIS. Sin embargo, si en su lugar quiere utilizar un nombre de fuente de datos para conectarse, debe catalogar la base de datos y configurar el nombre de la fuente de datos. Consulte las instrucciones de creación del nombre de origen de datos en la documentación de IBM Db2.
A continuación, configure el sistema Db2.
Configurar los ZPARM
Para permitir que ArcGIS se ejecute como cliente distribuido de IBM Db2 en z/OS, se debe iniciar la instalación de datos distribuidos (DDF). Para optimizar el rendimiento de la geodatabase con ArcGIS y otros clientes, se recomiendan utilizar los valores DB2 ZPARM siguientes:
- Inicie sesión en Db2 como administrador en z/OS.
- Establezca lo siguiente en la sección DSN6FAC de DSNTIJUZ:
- CMTSTAT=INACTIVE
- IDTHTOIN=3600
- TCPKPALV=120
- Establezca estos parámetros en la sección DSN6YSP de DSNTIJUZ:
- CONDBAT=10000
- EXTSEC=YES
- IMPDSDEF=YES
- IXQTY=0
- MAXDBAT=1000
- TSQTY=0
- XMLVALA=204800
- XMLVALS=10240
- También debe establecer los entornos WLM predeterminados correctos en WLMENV, en la sección DSN6SPRM de DSNTIJUZ. Son las siguientes:
- CACHEDYN=YES
- EDMDBDC=102400
- EDMPOOL=32000
- EDMSTMTC=102400
- EDM_SKELETON_POOL=102400
- Después de modificar los valores ZPARM, debe asegurarse de que el parámetro SYSLMOD del paso de trabajo DSNTIZL esté dirigido al nombre de dataset correcto, para que Db2 cargue el módulo ZPARM correcto cuanto se inicie.
- Detenga e inicie Db2 a través del comando SET SYSPARM para hacer que los cambios figuren on-line.
Cree un usuario sde y un grupo.
Cree un Id. de autorización primario en el RACF en z/OS (sde de forma predeterminada) con acceso a la Opción de tiempo compartido (TSO). Para obtener información sobre la creación de usuarios a través del RACF, consulte el manual de administración de z/OS.
IBM recomienda utilizar un ID de autorización secundario (un grupo de usuarios en el RACF en z/OS) para optimizar la administración de autoridad del usuario. Debe habilitar los ID de autorización secundarios en z/OS. Consulte el manual de z/OS para obtener información sobre la habilitación de la autorización secundaria.
Solo el usuario responsable de administrar los datos SIG y la geodatabase debe iniciar sesión como usuario sde. Los otros usuarios de ArcGIS deben conectarse a través de las cuentas restantes.
- Cree una cuenta de usuario independiente con el nombre sde en el sistema utilizando el RACF.
- Cree un grupo de usuarios, como GISUSERS, en z/OS utilizando el RACF. Para hacer esto, envíe el nombre del grupo en VM14 al EC.
- Agregue el usuario sde al grupo GISUSERS utilizando el RACF.
Para conectarse a la geodatabase como usuario sde desde el equipo cliente con Windows donde se instaló el cliente de ArcGIS, en el equipo cliente debe existir el usuario de Windows local con el mismo nombre (sde) que se especificó para la conexión al servidor. Este usuario no requiere ningún permiso especial. Para crear un usuario de Windows local, consulte la documentación de Microsoft Windows.
Crear bases de datos
Es preciso tener al menos dos bases de datos de Db2 en el subsistema de bases de datos habilitadas espacialmente para almacenar una geodatabase: una para almacenar el repositorio de geodatabase y otra para almacenar datos de usuario. Juntos, la base de datos con el repositorio de geodatabase y la base de datos o bases de datos que contienen los datos de usuario conforman una geodatabase. Por lo tanto, esas bases de datos se deben crear antes de que pueda configurar la geodatabase.
El script JCL, EsriUDFI, se proporciona para crear bases de datos y UDF para la creación de la geodatabase. Esta script está instalada en la carpeta DatabaseSupport\DB2zOS de su directorio de instalación de cliente de ArcGIS. Debe personalizar el script EsriUDFI con la información específica de la implementación y cargar y ejecutar el script en z/OS. En el script se incluyen las instrucciones para crear dos bases de datos.
Para personalizar EsriUDFI, consulte las instrucciones en el script JCL y verifique cuidadosamente lo siguiente:
- En el cuerpo de EsriUDFI muchas cadenas de caracteres deben ser reemplazadas por los parámetros de entorno de usuario correspondientes. En la parte superior del script EsriUDFI se detalla el significado de cada cadena de caracteres y el modo de reemplazarlas.
- El paso EsriS1 del script JCL crea dos bases de datos y establece la intercalación. Para utilizar estas líneas, deberá eliminar los comentarios que tengan y proporcionar nombres e intercalaciones para las bases de datos. Un ejemplo de esto es el siguiente:
CREATE DATABASE SDEDBR00 CCSID UNICODE; CREATE DATABASE SDEDBU00 CCSID UNICODE;
- Si lo desea, puede crear un grupo de almacenamiento para administrar los datos de geodatabase de ArcSDE más eficientemente. Primero debe crear un grupo de almacenamiento y luego debe agregar una línea adicional a el script EsriUDFI, tal como se muestra en este ejemplo:
CREATE STOGROUP ARCSDE VOLUMES (VOL1, VOL2, …) VCAT SDECAT; CREATE DATABASE SDEDBR00 CCSID UNICODE STOGROUP ARCGIS; CREATE DATABASE SDEDBU00 CCSID UNICODE STOGROUP ARCGIS;
- Una vez que termine de personalizar el script EsriUDFI, deberá enviarla al equipo de destino.
Una vez que finalice el trabajo de instalación de la UDF de Esri, notará que durante el último paso, los procedimientos de vinculación de paquete y de creación de SDE.SDE_UPDT_LMOD se completaron con éxito, pero presentaron advertencias. Estas advertencias indican que las tablas del sistema de geodatabase aún no se han creado en la base de datos. Puede ignorar estas advertencias, ya que cuando ejecute la herramienta Habilitar geodatabase corporativa, las tablas se crearán y el objeto del paquete se vinculará automáticamente cuando hace referencia la herramienta.
- Habilite espacialmente el subsistema de base de datos. Consulte la documentación de Db2 z/OS para obtener instrucciones.
Otorgar privilegios
Los permisos y privilegios de base de datos se deben otorgar al usuario sde y al grupo de usuarios de ArcGIS después de que se crean las bases de datos y las UDF.
- Para conceder los privilegios necesarios al grupo de usuarios de ArcGIS que establezca y al usuario sde, inicie sesión en Db2 en una cuenta con el rol SYSADM. En el ejemplo de instrucciones GRANT, el grupo se denomina 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;
- Conceda los siguientes privilegios adicionales al usuario 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;
- Conceda el siguiente permiso al rol PUBLIC:
GRANT EXECUTE ON PACKAGE SYSPROC.* TO PUBLIC;
- La declaración que se presenta a continuación es necesaria para el uso de un grupo de almacenamiento. En este ejemplo, el grupo de almacenamiento se denomina ARCGIS.
GRANT USE OF STOGROUP ARCGIS to SDE;
Personalizar dbtune.sde
Para indicar el subsistema de base de datos, modifique el archivo dbtune.sde que se encuentra en <ArcGIS client installation directory>\DatabaseSupport\DB2zOS.
El archivo dbtune.sde completa la tabla de sistema de geodatabase DBTUNE con palabras clave de configuración, parámetros y valores que controlan el almacenamiento físico de tablas dentro de la base de datos. En el caso de las bases de datos Db2 en z/OS, debe editar este archivo antes de ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa con el fin de especificar la base de datos en que se crearán ciertas tablas.
- Abra el archivo dbtune.sde con un editor de texto.
- Elimine los comentarios y cambie los valores de cadena de caracteres de configuración bajo la palabra clave DATA_DICTIONARY para indicar la base de datos en la que desea crear ciertas tablas del sistema de la geodatabase. A continuación se presentan las configuraciones sugeridas. La base de datos con el nombre SDEDBR00 es la que almacenará las tablas de repositorio de la geodatabase.
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"
- Asegúrese de que los parámetros BLOB_OPTION y CLOB_OPTION bajo la palabra clave DEFAULTS estén configurados como cadenas de caracteres vacías.
- Elimine los comentarios y cambie los valores de cadena de caracteres de configuración bajo la palabra clave DEFAULTS para indicar la base de datos en la que desea crear ciertos objetos relacionados a los datos definidos por el usuario.
A continuación se presentan las configuraciones sugeridas. La base de datos con el nombre SDEDBU00 es la que almacenará los datos definidos por el usuario dentro del subsistema de la base de datos.
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"
- Elimine los comentarios y cambie los valores de cadenas de caracteres de configuración bajo la palabra clave LOGFILE_DEFAULTS para indicar la base de datos en la que desea crear tablas de archivos de registro.
LD_STORAGE "IN DATABASE SDEDBU00" LF_STORAGE "IN DATABASE SDEDBU00" SESSION_STORAGE "IN DATABASE SDEDBU00"
- Guarde y cierre el archivo dbtune.sde.
Ahora puede crear una geodatabase en el subsistema Db2.
Crear una geodatabase
Utilice uno de los métodos siguientes para crear una geodatabase en Db2 en z/OS.
Utilizar la herramienta Habilitar geodatabase corporativa
Si instala y configura ArcGIS Desktop para conectarse a su subsistema de Db2, puede ejecutar la herramienta Habilitar geodatabase corporativa.
- Inicie ArcMap o ArcCatalog.
- Conéctese a Db2 desde el árbol de catálogo. Utilice el nombre de usuario sde para conectarse.
Asegúrese de guardar la contraseña de usuario sde en el cuadro de diálogo Conexión de base de datos.
- Haga clic con el botón derecho en la conexión de base de datos y haga clic en Habilitar geodatabase.
Se abre la herramienta Habilitar geodatabase corporativa.
- Agregue el archivo de conexión de base de datos al cuadro de texto Base de datos de entrada.
- Navegue hasta el archivo de códigos clave de ArcGIS Server que se creó cuando autorizó ArcGIS Server y agréguelo al cuadro de texto Archivo de autorización.
Cuando utiliza el asistente para autorizar ArcGIS Server, se escribe un archivo de códigos clave en el equipo donde está instalado el software. Si autorizó ArcGIS Server en un cuadro de Linux, el archivo se creó en /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Si autorizó en un servidor de Windows, el archivo se creó en Program Files\ESRI\License<release>\sysgen. Copie este archivo en una ubicación a la que pueda tener acceso desde la herramienta Habilitar geodatabase corporativa. Si aún no lo hizo, autorice ArcGIS Server para crear este archivo.
- Haga clic en el botón Aceptar para ejecutar la herramienta.
Puede encontrar los mensajes relativos a la creación de la geodatabase en el archivo sde_setup.log, que se crea en el directorio especificado para la variable %TEMP% del equipo en el que se ejecuta la herramienta. Si tiene algún problema al crear una geodatabase, compruebe este archivo para solucionarlo.
Se crea una geodatabase en el subsistema Db2.
A continuación, cree usuarios que puedan crear datos.
Utilizar un script de Python
Puede ejecutar un script de Python desde un equipo cliente de ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Server (enterprise edition) o ArcGIS Engine (con la extensión Geodatabase Update) para crear una geodatabase en un subsistema de Db2.
Siga estos pasos para ejecutar un script de Python y crear la geodatabase en un subsistema Db2 z/OS:
- Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él el script siguiente.
""" 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)
- Guarde el archivo con una extensión .py.
- Ejecute el script, proporcionando opciones e información específicas de su sitio.
En el siguiente ejemplo ejecutado desde un equipo con Windows, se ejecuta el archivo enable_gdb.py para la base de datos spdata en la instancia db2prod. La conexión se realiza con el nombre de usuario sde y la contraseña Tgdbst@rtsh3r3. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.
enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
Este es un ejemplo de la ejecución del script en un equipo con 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'
Puede encontrar los mensajes relativos a la creación de la geodatabase en el archivo sde_setup.log, que se crea en el directorio especificado para la variable TEMP o TMP del equipo en el que se ejecuta el script de Python. Si tiene algún problema al crear una geodatabase, compruebe este archivo para solucionarlo.
Se crea una geodatabase en el subsistema Db2.
A continuación, cree usuarios que puedan cargar datos.