Crear una geodatabase de 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.

Cuando se crea una geodatabase en ArcGIS Pro 3.2, la versión de la geodatabase es 11.2.0.

Requisitos previos

Antes de crear una geodatabase en Db2 en Linux, UNIX o Windows, tiene que hacer lo siguiente:

  • Confirme que las versiones de ArcGIS, Db2 y el sistema operativo que desea usar sean compatibles.
  • Obtenga los clientes de Db2 necesarios para conectarse a la versión de Db2 que usará para almacenar la geodatabase.
  • Obtenga un archivo de códigos clave de ArcGIS Server (que se crea cuando autoriza ArcGIS Server) y ubíquelo en una ubicación a la que pueda acceder desde el cliente de ArcGIS que vaya a usar para crear la geodatabase.
  • Instale y configure Db2.

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, primero siga las instrucciones proporcionadas por 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.
  4. Cree un espacio de tabla temporal y otorgue a los usuarios de la geodatabase acceso al espacio de tabla.

    El espacio de tabla temporal debe tener como mínimo 8K del espacio de página.

    En el siguiente ejemplo, se crea un espacio de tabla temporal de usuario llamado geospace con un tamaño de página de 8K. El uso del espacio de tablas se otorga a un grupo denominado geodatausers, que contiene a todos los usuarios de la base de datos que realizan operaciones de geodatabase, como la creación de archivos de geodatabase, el uso de bins de entidades y la creación de grandes conjuntos de selección que generan tablas de archivos de registro en la geodatabase.

    CREATE USER TEMPORARY TABLESPACE geospace PAGESIZE 8 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP;
    
    GRANT USE OF TABLESPACE geospace TO geodatausers WITH GRANT OPTION;

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 Pro (Desktop Standard o Desktop Advanced), o ArcGIS Server (Enterprise Edition) para crear una geodatabase. Para ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de un script, utilice ArcGIS Pro.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (enterprise) para autorizar su geodatabase en la siguiente sección. Aunque no ejecute 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 utilizará 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. Opcionalmente, catalogue la base de datos para permitir conexiones mediante un nombre de fuente de datos.

    Consulte las instrucciones de creación del nombre de fuente de datos en la documentación de IBM Db2 de IBM.

    No es necesario un nombre de fuente de datos para conectarse desde ArcGIS a una base de datos de Db2; en su lugar, puede utilizar una cadena de conexión DSNless.

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 Pro 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 con el inicio de sesión sde.

    Guarde la contraseña de usuario sde en el cuadro de diálogo Conexión de base de datos. Si no lo hace, el archivo de conexión no funcionará con la herramienta Habilitar la geodatabase corporativa.

  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 al 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 se utiliza el asistente para autorizar ArcGIS Server, se escribe un archivo de códigos clave en la máquina donde está instalado el software. Si aún no lo ha hecho, autorice ArcGIS Server para crear este archivo. Si autoriza ArcGIS Server en un equipo Linux, el archivo se crea en /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. Si autoriza el archivo en un servidor Microsoft Windows, el archivo se crea 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.

  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 una secuencia de comandos de Python

Puede ejecutar un script de Python desde un equipo cliente de ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) 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 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
    """
    
    # 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 Microsoft 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.