Disponible con una licencia Standard o Advanced.
Utilice la herramienta de geoprocesamiento Habilitar geodatabase corporativa o un script de Python para crear una geodatabase en una base de datos de IBM Informix.
En las secciones siguientes se explica cómo
- Configurar Informix para almacenar una geodatabase.
- Configurar un cliente de ArcGIS para conectarse a Informix.
- Crear una geodatabase de una base de datos Informix.
Instalar y configurar Informix
Antes de que sea posible ejecutar la herramienta Habilitar geodatabase corporativa o un script 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 replicación, el uso de mapas sin conexión y las ediciones de 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 en 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 clientes
Puede ejecutar un script de Python desde ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Engine Runtime con la extensión Geodatabase Update o ArcGIS Server (Standard o Advanced) 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 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 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 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 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 servidor 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 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 un script de Python
Para crear una geodatabase en una base de datos de Informix, puede ejecutar un script de Python desde ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Server o ArcGIS Engine (con la extensión Geodatabase Update).
Siga estos pasos para ejecutar un script 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 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, el archivo enable_gdb.py se ejecuta desde 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\License\sysgen\keycodes'
Este es un ejemplo de la ejecución del script 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/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 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.