Crear una geodatabase en Db2

Disponible con una licencia Standard o Advanced.

Instale y configure IBM Db2 y un cliente de ArcGIS y utilice la herramienta de geoprocesamiento Habilitar geodatabase corporativa o un script de Python para crear una geodatabase en una base de datos de Db2.

Requisitos previos

Antes de crear una geodatabase en Db2, necesita hacer lo siguiente:

Instalar y configurar Db2

Antes de que sea posible ejecutar la herramienta Habilitar geodatabase corporativa o un script para crear una geodatabase en Db2, usted (o bien el departamento de TI o bien el administrador de base de datos) debe instalar y configurar el sistema de administración de bases de datos Db2.

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.

  1. Cree un inicio de sesión en el sistema operativo denominado sde en el servidor de Db2.

    Para crear una geodatabase se conectará a la base de datos con el nombre de usuario sde.

  2. Cree una base de datos de Db2 y regístrela con el módulo Spatial Extender.
  3. 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 de Db2.

Configurar clientes

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.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (enterprise) para autorizar su geodatabase en la siguiente sección. Incluso si no ejecuta un script de Python desde un equipo con ArcGIS Server para crear la geodatabase, debe instalar y autorizar ArcGIS Server para obtener el archivo de códigos clave. Puede que tenga que copiar el archivo desde el equipo de ArcGIS Server en una ubicación a la que pueda acceder la herramienta de geoprocesamiento o el script de Python.

  1. 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.

  2. El cliente de ArcGIS se instalará en un equipo diferente al servidor de 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.

  3. Mediante una cadena de conexión DSNless puede conectarse a la base de datos de 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 fuente de datos en la documentación de Db2 de IBM.

Ahora puede crear una geodatabase.

Crear una geodatabase

Utilice uno de los métodos siguientes para crear una geodatabase en la base de datos de Db2:

Utilizar la herramienta Habilitar geodatabase corporativa

Si instala y configura ArcGIS Desktop para conectarse a la base de datos de Db2, puede ejecutar la herramienta Habilitar geodatabase corporativa.

Siga estos pasos para crear una geodatabase desde ArcGIS Pro:

  1. Inicie ArcGIS Pro.
  2. Conéctese a la base de datos Db2. 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.

  3. Abra la herramienta Habilitar geodatabase corporativa.
  4. Agregue el archivo de conexión de base de datos para la base de datos de Db2 al cuadro de texto Base de datos de entrada.
  5. 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.

  6. Haga clic en Ejecutar.

    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 la base de datos de 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 de IBM Db2.

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 Geodatabase Update para crear una geodatabase en una base de datos de Db2.

Siga estos pasos para ejecutar un script de Python para crear la geodatabase en una base de datos de Db2:

  1. 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=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS:  SQL_SERVER, 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)
    
    		
    	# 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)

  2. Guarde el archivo con una extensión .py.
  3. 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 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'
    Sugerencia:

    Type -h or --help at the command prompt to get syntax help.

    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 la base de datos de 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 de IBM Db2.