Disponible con una licencia Standard o Advanced.
Utilice la herramienta de geoprocesamiento Habilitar geodatabase corporativa o una secuencia de comandos de Python para crear geodatabases en una base de datos IBM Informix.
En las secciones indicadas a continuación se explica cómo realizar lo siguiente:
- Configurar Informix para almacenar una geodatabase.
- Configurar un cliente de ArcGIS para conectarse a Informix.
- Crear una geodatabase de una base de datos Informix.
Configurar Informix
Antes de que sea posible ejecutar la herramienta Habilitar geodatabase corporativa o una secuencia de comandos para crear una geodatabase en Informix, debe instalar y configurar el sistema de administración de bases de datos Informix. Antes de configurar una geodatabase, verifique los requisitos del sistema ArcGIS para asegurarse de que la base de datos, ArcGIS y las combinaciones de hardware que desea utilizar son compatibles.
Para instalar y configurar la instancia de Informix, debería seguir las instrucciones de IBM. A continuación, realice estos pasos para configurar una base de datos y el nombre de usuario que va a utilizar con la geodatabase.
-
Cree un inicio de sesión en el sistema operativo denominado sde en el servidor de Informix.
Para crear una geodatabase se conectará a la base de datos con el nombre de usuario sde.
- Realice los cambios siguientes en el archivo ONCONFIG de Informix:
- Elimine el comentario del parámetro VPCLASS jvp,num=1.
Esto permite crear la función sde.retrieve_guid() en la geodatabase, que es necesaria para la réplica, el uso de mapas sin conexión y las ediciones SQL de tablas que contienen columnas globales de Id. o GUID. La configuración también se necesita en los flujos de trabajo de archivo no versionados.
- Defina el parámetro USEOSTIME como 1 para usar la precisión de subsegundos en los valores de tiempo.
La definición de este parámetro le permite implementar flujos de trabajo de edición que exigen la edición de datos no versionados mientras está desconectado de la red.
- Reinicie Informix para implementar los cambios que ha realizado en el archivo ONCONFIG.
- Elimine el comentario del parámetro VPCLASS jvp,num=1.
- Cree una base de datos en la instancia de Informix y configure los espacios de almacenamiento.
La base de datos Informix que utiliza con la geodatabase debe contener lo siguiente:
- Al menos 100 MB de espacio libre disponible para almacenar objetos del sistema de geodatabase
- Registro o registro en búfer habilitado en la base de datos
ArcGIS establece las transacciones y no se pueden introducir datos a menos que la base de datos se haya creado como registrada o registrada en búfer. Puede establecer este registro durante la creación de la base de datos a través de dbaccess o utilizar el comando ontape.
ontape -s -B <database name>
- Registro habilitado para espacios de objetos inteligentes grandes
También se deben registrar todos los espacios de objetos inteligentes grandes (sbspaces) utilizados para datos espaciales. El registro no es la opción predeterminada cuando se crean objetos inteligentes grandes. Sin embargo, para asegurar que el registro de transacciones permita la reversión y proteja todos los datos espaciales, debe activar el registro para todos los blobs inteligentes. Ejecute el siguiente comando como usuario de Informix para activar el registro para un sbspace de objeto inteligente grande:
onspaces -ch SBLOBspace -DF LOGGING=ON
- Otorgue al nombre de usuario sde el rol EXTEND y los permisos RESOURCE en la base de datos.
A continuación, configure un cliente de ArcGIS desde el que conectarse y cree una geodatabase en la base de datos Informix.
Configurar un cliente de ArcGIS
Puede ejecutar una secuencia de comandos de Python desde ArcGIS for Desktop (Estándar o Avanzado), ArcGIS Engine Runtime con la extensión Geodatabase Update o ArcGIS for Server (Standard o Advanced) para crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de una secuencia de comandos, use ArcGIS for 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 Informix en la mayoría de los casos; por consiguiente, instale y configure el cliente de Informix en el equipo cliente de ArcGIS.
El cliente de Informix Connect (IConnect) se puede descargar desde My Esri. Vea la documentación de Informix para obtener las instrucciones para instalar el cliente. Si está instalando el cliente Informix para ejecutarlo con un cliente ArcGIS de 32 bits, instale el cliente IConnect de Informix de 32 bits. Si está instalando el cliente Informix para ejecutarlo con ArcGIS for Server, instale el cliente IConnect de 64 bits.
- Si el cliente de ArcGIS se ha instalado en un equipo con Windows, registre el servidor Informix a través de SetNet32.
- Mediante una cadena de conexión DSNless puede conectarse a la base de datos Informix desde ArcGIS. Sin embargo, si en su lugar quiere utilizar un nombre de fuente de datos ODBC para conectarse, debe configurar el nombre de la fuente de datos. Consulte las instrucciones en Configurar una fuente de datos ODBC para Informix.
Ahora puede crear una geodatabase.
Crear una geodatabase
Utilice uno de los métodos siguientes para crear una geodatabase en la base de datos Informix:
Utilizar la herramienta Habilitar geodatabase corporativa
Si instala y configura ArcGIS for Desktop para conectarse a la base de datos Informix, puede ejecutar la herramienta Habilitar geodatabase corporativa.
- Inicie ArcMap o ArcCatalog.
- Conéctese a la base de datos Informix 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 de la base de datos Informix al cuadro de texto Base de datos de entrada.
- Navegue hasta el archivo de códigos clave de ArcGIS for Server que se creó cuando autorizó ArcGIS for Server y agréguelo al cuadro de texto Archivo de autorización.
Cuando utiliza el asistente para autorizar ArcGIS for Server, se escribe un archivo de códigos clave en el servidor donde está instalado el software. Si autorizó ArcGIS for 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. Si aún no lo hizo, autorice ArcGIS for Server para crear este archivo.
- Haga clic en el botón Aceptar para ejecutar la herramienta.
Un archivo de registro para la creación de la geodatabase (GDBCreateGeodatabase<#>.log) se escribe en el directorio especificado para su variable %TEMP% en el equipo en el que se ejecuta la herramienta. Si tiene algún problema al ejecutar la herramienta, verifique este archivo de registro para solucionar el problema.
Se crea una geodatabase en su base de datos Informix.
A continuación, cree usuarios para cargar datos en la geodatabase. Consulte las instrucciones de creación de usuarios en la documentación del Centro de información IBM DB2.
Utilizar una secuencia de comandos de Python
Para crear una geodatabase en una base de datos Informix, puede ejecutar una secuencia de comandos de Python desde ArcGIS for Desktop (Estándar o Avanzado), ArcGIS for Server (Standard o Advanced) o ArcGIS Engine (con la extensión Geodatabase Update).
Siga estos pasos para ejecutar una secuencia de comandos de Python y crear la geodatabase en una base de datos Informix:
- Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él la secuencia de comandos 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 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)
- Guarde el archivo con una extensión .py.
- Ejecute la secuencia de comandos, 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 idsprod. 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 INFORMIX -i idsprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Este es un ejemplo de la ejecución de la secuencia de comandos en un equipo con Linux:
/enable_gdb.py --DBMS INFORMIX -i idsprod --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 archivo de registro para la creación de geodatabase (GDBCreateGeodatabase<#>.log) se escribe en el directorio especificado para la variable TEMP o TMP en el equipo en el que se ejecuta la secuencia de comandos.
Se crea una geodatabase en su base de datos Informix.
A continuación, cree usuarios para cargar datos en la geodatabase. Consulte las instrucciones de creación de usuarios en la documentación del Centro de información IBM DB2.