Disponible con una licencia Standard o Advanced.
Instale y configure IBM DB2 antes de utilizar la herramienta de geoprocesamiento Habilitar geodatabase corporativa o una secuencia de comandos de Python para crear geodatabases en una base de datos DB2.
En este tema se explica la creación de una geodatabase en DB2 en servidores Linux, UNIX o Windows. Consulte las instrucciones de configuración de una geodatabase en DB2 en el sistema operativo z (z/OS) en Configurar una geodatabase en DB2 z/OS.
Configurar DB2
Antes de que sea posible ejecutar la herramienta Habilitar geodatabase corporativa o una secuencia de comandos para crear una geodatabase en DB2, debe instalar y configurar el sistema de administración de bases de datos DB2. 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 DB2, 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 DB2.
Para crear una geodatabase se conectará a la base de datos con el nombre de usuario sde.
- Cree una base de datos DB2 y regístrela con el módulo Spatial Extender.
- Otorgue autoridad DBADM al usuario sde 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 DB2.
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 DB2 en la mayoría de los casos; por consiguiente, instale y configure el cliente de DB2 en el equipo cliente de ArcGIS.
IBM Data Server Runtime Client for DB2 se puede descargar desde My Esri, pero también puede utilizar su propia instalación del cliente de DB2. Consulte las instrucciones de instalación en la documentación de DB2. Si instala el cliente de DB2 en un sistema operativo de 64 bits, ejecute el ejecutable de 64 bits; con él se instalan archivos tanto de 32 bits como de 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 la fuente de datos en la documentación de IBM DB2.
Ahora puede crear una geodatabase.
Crear una geodatabase
Utilice uno de los métodos siguientes para crear una geodatabase en la base de datos DB2:
Utilizar la herramienta Habilitar geodatabase corporativa
Si instala y configura ArcGIS for Desktop para conectarse a la base de datos DB2, puede ejecutar la herramienta Habilitar geodatabase corporativa.
- Inicie ArcMap o ArcCatalog.
-
Conéctese a la base de datos 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 para la base de datos DB2 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 la base de datos DB2.
A continuación, cree usuarios para cargar datos en la geodatabase. Consulte las instrucciones de creación de usuarios en el Centro de información IBM DB2.
Utilizar una secuencia de comandos de Python
Para crear una geodatabase en una base de datos DB2, 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 DB2:
- 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 db2prod. La conexión se realiza como usuario SDE con 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\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 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/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 la base de datos DB2.
A continuación, cree usuarios para cargar datos en la geodatabase. Consulte las instrucciones de creación de usuarios y concesión de privilegios para cargar datos en el Centro de información IBM DB2.