Crear una geodatabase de Oracle

Disponible con una licencia Standard o Advanced.

Para crear una geodatabase en una base de datos de Oracle, ejecute una herramienta de geoprocesamiento o un script de Python desde un equipo de cliente de ArcGIS. Comience por leer los requisitos previos y, a continuación, siga las instrucciones que se corresponden con su situación.

Nota:

Ya no se admite la creación o actualización de geodatabases de esquema de usuario en Oracle.

Requisitos previos

Para crear una geodatabase en Oracle, tiene que hacer lo siguiente:

  1. Confirme que la combinación de ArcGIS, Oracle y el sistema operativo que desea usar sea compatible.
  2. Obtenga los clientes de Oracle necesarios para conectarse a la versión de Oracle que usará para almacenar su geodatabase.
  3. Obtenga un archivo de códigos clave de 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.
  4. Determine quién creará la geodatabase, ya que influye en quién crea la base de datos y qué herramienta ejecuta para crear la geodatabase. Siga las instrucciones que se corresponden con su situación:

Usted es el administrador de base de datos y de la geodatabase

Si desempeña el rol tanto de administrador de base de datos como de administrador de la geodatabase y, por lo tanto, conoce la contraseña de ambos inicios de sesión, puede usar la herramienta de geoprocesamiento Crear geodatabase corporativa o un script de Python para crear una geodatabase en Oracle.

La herramienta Crear geodatabase corporativa facilita la configuración de una geodatabase porque crea el usuario sde, el esquema y el espacio de tabla, además de otorgar los privilegios requeridos al usuario sde por usted. Para lograrlo, la herramienta utiliza la siguiente configuración predeterminada:

  • Crea un usuario de base de datos denominado sde
  • Crea un espacio de tablas de 400 MB en la ubicación predeterminada de Oracle y lo establece como espacio de tabla de usuario sde
  • Otorga al usuario sde los privilegios para crear y actualizar una geodatabase, quitar conexiones de base de datos e importar datos mediante Oracle Data Pump (no es aplicable a Oracle 11g)
  • Otorga los privilegios de paquete requeridos para crear una geodatabase
  • Crea una geodatabase

Para obtener más información sobre los privilegios necesarios, consulte Privilegios para geodatabases en Oracle.

Nota:

No puede utilizar este flujo de trabajo para crear una geodatabase en un servicio de base de datos.

Antes de ejecutar la herramienta o script para crear una geodatabase, debe configurar Oracle.

Instalar y configurar Oracle

Antes de crear una geodatabase, Oracle debe instalarse y configurarse. La configuración de la instancia de Oracle depende de las necesidades específicas de su organización. Consulte la información de instalación y configuración en la documentación de Oracle.

Antes de configurar una geodatabase, verifique los requisitos del sistema de ArcGIS para Oracle para asegurarse de que las combinaciones de hardware, Oracle y ArcGIS que desea utilizar son compatibles.

Si necesita llevar a cabo cualquiera de las operaciones siguientes, también tendrá que configurar el archivo extproc de Oracle para acceder a las bibliotecas ST de Esri:

Una vez que Oracle se haya instalado y configurado, instale los clientes de ArcGIS y Oracle.

Instalar y configurar clientes

Puede instalar ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Engine Geodatabase Update o ArcGIS Server (Enterprise Edition) y ejecutar un script para crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Crear geodatabase corporativa en lugar de un script, instale ArcGIS Desktop.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (Enterprise Edition) 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 de códigos clave desde ArcGIS Server en una ubicación a la que pueda acceder la herramienta de geoprocesamiento Crear geodatabase corporativa.

En la mayoría de los casos, el cliente de ArcGIS se instalará en un equipo distinto de Oracle. Por lo tanto, debe tener un cliente de Oracle compatible en el equipo cliente de ArcGIS para conectarse a la instancia de Oracle. Consulte la documentación de Oracle para determinar la versión del cliente de Oracle que debe instalar para conectarse a la versión de Oracle que está utilizando y para obtener instrucciones de instalación y configuración del cliente.

  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. Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.

    Si se conecta desde un cliente de ArcGIS de 32 bits (como ArcMap), debe instalar un cliente de Oracle de 32 bits. Esto es así aun cuando instale la aplicación cliente de ArcGIS en un equipo con un sistema operativo de 64 bits y la base de datos y el sistema operativo del servidor sean de 64 bits. Si se conecta desde un cliente de ArcGIS de 64 bits (como ArcGIS Server o ArcGIS Pro), debe instalar un cliente deOracle de 64 bits.

    Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte las instrucciones de instalación en la documentación de Oracle.

  3. Defina la variable de entorno del sistema operativo o el perfil de usuario para incluir la ruta y nombre del directorio en el que se instaló el cliente de Oracle.

    • En Linux, configure la variable de entorno LD_LIBRARY_PATH.

      Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte las instrucciones de instalación en la documentación de Oracle.

    • En Microsoft Windows, establezca la variable de entorno PATH. Si ArcMap está instalado en el mismo equipo de Windows que ArcGIS Pro o ArcGIS Server, configure la variable PATH de modo que lea el cliente de 64 bits antes que el cliente de 32 bits. Por ejemplo, si el cliente de Oracle de 32 bits está instalado enc:\Program Files (x86)\Oracle y Oracle Instant Client de 64 bits está instalado en c:\Program Files\Oracle, agregue lo siguiente al comienzo del valor de la variable PATH: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.

  4. Si el cliente de ArcGIS ya se estaba ejecutando, reinícielo para reconocer el cliente de Oracle y nuevas variables de entorno.
  5. Puede conectarse desde ArcGIS a Oracle con una cadena Easy Connect. Sin embargo, debe configurar su base de datos Oracle para permitir cadenas Easy Connect. Si tiene el cliente completo de Oracle instalado, pero desea usar la sintaxis de Easy Connect para conectarse, compruebe que el archivo sqlnet.ora del cliente está configurado de modo que permita el uso de Easy Connect y asegúrese de que el servidor de Oracle se ha configurado para permitir la sintaxis de Easy Connect. Consulte la documentación de Oracle para obtener más instrucciones.

Ahora puede crear una geodatabase.

Crear una geodatabase

Puede ejecutar la herramienta Crear geodatabase corporativa desde ArcGIS Desktop (Desktop Standard o Desktop Advanced) o ejecutar un script de Python desde un cliente de ArcGIS Desktop, ArcGIS Server o ArcGIS Engine para crear un usuario SDE, un esquema, un espacio de tablas o una geodatabase.

Ejecutar la herramienta Crear geodatabase corporativa

Si tiene acceso a ArcGIS Desktop, puede ejecutar una herramienta de geoprocesamiento para crear la geodatabase.

Siga estos pasos para crear una geodatabase usando la herramienta Crear geodatabase corporativa en ArcMap:

  1. Inicie un cliente de ArcGIS Desktop.
  2. Abra la herramienta Crear geodatabase corporativa.

    Puede buscar o examinar esta herramienta, que se encuentra en el conjunto de herramientas Administración de la geodatabase de la caja de herramientas Administración de datos.

  3. Elija Oracle en la lista desplegable Plataforma de la base de datos.
  4. Proporcione la información requerida para conectarse a la instancia de Oracle.
    • Si ya configuró el cliente de Oracle para usar un alias de red de TNS, escriba el alias del servicio de Net en el cuadro de texto Instancia.
    • Si no ha configurado el alias de red del cliente de Oracle y su base de datos y cliente de Oracle están configurados para usar cadenas de Easy Connect, proporcione la cadena Easy Connect de Oracle en el cuadro de texto Instancia.
  5. Debe conectarse a la base de datos como un administrador de base de datos para crear el administrador de la geodatabase y el espacio de tabla. Por lo tanto, el cuadro de texto Administrador de la base de datos se llena con el nombre de usuario del sistema.
  6. Escriba la contraseña del usuario del sistema en el cuadro de texto Contraseña del administrador de la base de datos.
  7. Introduzca sde en el cuadro de texto Administrador de la geodatabase.

    Si todavía no existe el usuario sde en la base de datos, la herramienta lo crea y le otorga los privilegios necesarios para crear una geodatabase. Si el usuario ya existe, se le conceden los privilegios necesarios.

  8. Escriba una contraseña para el usuario sde en el cuadro de texto Contraseña del administrador de la geodatabase.

    Si el usuario sde ya existe en la base de datos, asegúrese de escribir la contraseña correcta del usuario existente; esta herramienta no cambiará la contraseña. Si va a crear un usuario sde, la contraseña que escriba se utiliza cuando se cree el usuario sde.

  9. Especifique un espacio de tabla para el usuario sde.
    • Si tiene un espacio de tabla preconfigurado para utilizarse para el repositorio de la geodatabase, escriba el nombre en el cuadro de texto Nombre del espacio de tabla.
    • Si desea que la herramienta le cree un espacio de tablas, escriba un nombre válido en el cuadro de texto Nombre del espacio de tabla y la herramienta creará un espacio de tabla de 400 MB en la ubicación predeterminada de Oracle. Si no escribe un nombre de espacio de tabla, se crea el espacio de tabla SDE_TBS y se establece como el espacio de tabla predeterminado del usuario sde.
  10. Para especificar un Archivo de autorización, busque y seleccione el archivo de códigos clave que se creó cuando autorizó ArcGIS Server Enterprise.

    Este archivo se escribe en la carpeta \\Program Files\ESRI\License<release#>\sysgen en los servidores de Windows y /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen en los servidores de Linux. Copie el archivo de códigos clave en una ubicación a la que pueda acceder la herramienta. Si aún no lo ha hecho, autorice ahora a ArcGIS Server a crear este archivo.

  11. Haga clic en Aceptar (ArcMap o ArcCatalog) o Ejecutar (ArcGIS Pro).

Se crea una geodatabase en la base de datos de Oracle.

Los mensajes relativos a la creación de la geodatabase se escriben 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 de registro para solucionarlo.

A continuación, si el parámetro open_cursors de la base de datos de Oracle está establecido con un valor distinto de 300, ejecute el procedimiento almacenado de sde.gdb_util.update_open_cursors para sincronizar el parámetro de su base de datos de Oracle con el de la geodatabase.

Ejecutar un script de Python

Puede copiar, guardar y ejecutar el script proporcionado aquí para crear una geodatabase desde un cliente de ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Server o ArcGIS Runtime (con la extensión Geodatabase Update).

  1. Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él el script siguiente.
    """
    Name: create_enterprise_gdb.py
    Description: Provide connection information to a DBMS instance and create an enterprise geodatabase.
    Type  create_enterprise_gdb.py -h or create_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 10.1 and higher releases")
    
    #Define help and options
    parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS:  SQLSERVER, ORACLE, or POSTGRESQL.")
    parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
    parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")
    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="Dbms_admin", type="string", default="", help="DBMS administrator user")
    parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password")
    parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema Type for SQL Server geodatabase, SDE or DBO. Default=SDE_SCHEMA")
    parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name")
    parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password")
    parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name")
    parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file")
    parser.add_option ("--type", dest="Spatial_type", type="choice", choices=['ST_GEOMETRY', 'POSTGIS'], default="ST_GEOMETRY", help="Spatial Type for PostgreSQL geodatabase, ST_GEOMETRY or POSTGIS. Default=ST_GEOMETRY")
    
    # 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
    	database = options.Database.lower()	
    	account_authentication = options.Account_authentication.upper()
    	dbms_admin = options.Dbms_admin
    	dbms_admin_pwd = options.Dbms_admin_pwd
    	schema_type = options.Schema_type.upper()
    	gdb_admin = options.Gdb_admin
    	gdb_admin_pwd = options.Gdb_admin_pwd	
    	tablespace = options.Tablespace
    	license = options.Authorization_file
    	spatial_type = options.Spatial_type.upper()
    	
    	
    	if (database_type == "SQLSERVER"):
    		database_type = "SQL_SERVER"
    	
    	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 == "SQL_SERVER"):
    		if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"):
    			print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE."))
    			sys.exit(3)
    		if (schema_type == "DBO_SCHEMA" and gdb_admin != ""):
    			print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema..."))
    		if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication"))
    			sys.exit(3)
    		if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""):
    			print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication..."))	
    	else:
    		if (schema_type == "DBO_SCHEMA"):
    			print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema..." ))
    			
    		if( gdb_admin.lower() == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified."))
    			sys.exit(3)
    	
    		if( dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!"))
    			sys.exit(3)
    
    		if (account_authentication == "OPERATING_SYSTEM_AUTH"):
    			print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." ))
    
    	# Get the current product license
    	product_license=arcpy.ProductInfo()
    	
    	
    	# Checks required license level
    	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
    		print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase 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 creating enterprise geodatabase.")
    	else:
    		print("\n" + product_license + " license available!  Continuing to create...")
    		arcpy.AddMessage("+++++++++")
    	
    	
    	try:
    		print("Creating enterprise geodatabase...\n")
    		arcpy.CreateEnterpriseGeodatabase_management(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license, spatial_type=spatial_type)
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    		arcpy.AddMessage("+++++++++\n")
    	except:
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    			
    #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 Linux, el archivo create_gdb.py se ejecuta para una instancia de Oracle con un SID de orcl. La instancia se está ejecutando en server gisprod. Se crea un usuario sde con la contraseña Tgdbst@rtsh3r3 junto con un espacio de tabla llamado sde. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.

    ./create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys
     -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'

    En este ejemplo, se ejecuta el mismo script desde un equipo con Windows:

    create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys
     -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '\\Program Files\ESRI\License\sysgen\keycodes'
    Sugerencia:

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

Ahora tiene una geodatabase en Oracle.

Los mensajes relativos a la creación de la geodatabase se escriben 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 la herramienta. Si tiene algún problema al crear una geodatabase, compruebe este archivo de registro para solucionarlo.

A continuación, si el parámetro open_cursors de la base de datos de Oracle está establecido con un valor distinto de 300, ejecute el procedimiento almacenado de sde.gdb_util.update_open_cursors para sincronizar el parámetro de su base de datos de Oracle con el de la geodatabase.

El administrador de Oracle configura la base de datos; el administrador de la geodatabase crea la geodatabase

Si la persona que va a crear la geodatabase no tiene acceso a la contraseña del administrador de base de datos, este puede configurar la base de datos y el usuario sde y, a continuación, el administrador de la geodatabase puede conectarse a ella con el nombre de usuario sde y crear una geodatabase en la base de datos con la herramienta de geoprocesamiento Habilitar geodatabase corporativa o un script de Python.

La herramienta Habilitar geodatabase corporativa acepta un archivo de conexión de base de datos como entrada y crea tablas del sistema, vistas, funciones y procedimientos de geodatabase en el esquema de usuario sde.

Instalar y configurar Oracle

Antes de que el administrador de la geodatabase pueda crear una geodatabase, el administrador de base de datos debe hacer lo siguiente:

  • Instale y configure una instancia de Oracle. La configuración de la instancia de Oracle depende de las necesidades específicas de su organización. Consulte la documentación para obtener información de instalación y configuración para Oracle.

    Verifique los requisitos del sistema de ArcGIS antes de configurar una geodatabase para asegurarse de que el sistema de administración de bases de datos, ArcGIS y las combinaciones de hardware que desea utilizar son compatibles. Consulte la lista de los privilegios necesarios en Privilegios para geodatabases en Oracle.

  • Cree un usuario y esquema sde.
  • Otorgue al usuario sde los privilegios necesarios para crear una geodatabase.
  • Cree un espacio de tabla para el usuario sde y establézcalo como su espacio predeterminado.
  • Otorgue privilegios de ejecución sobre los paquetes necesarios para crear la geodatabase. Consulte la lista de los paquetes en Privilegios para geodatabases en Oracle.

Si necesita llevar a cabo cualquiera de las operaciones siguientes, también tendrá que configurar el archivo extproc de Oracle para acceder a las bibliotecas ST de Esri:

Una vez que se haya instalado y configurado Oracle, el administrador de la geodatabase puede instalar los clientes de ArcGIS y Oracle.

Instalar y configurar clientes

Puede instalar ArcGIS Desktop (Desktop Standard o Desktop Advanced), ArcGIS Engine Geodatabase Update o ArcGIS Server para ejecutar un script de Python y crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Crear geodatabase corporativa en lugar de un script, instale ArcGIS Desktop.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (Enterprise Edition) 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 de códigos clave desde ArcGIS Server en una ubicación a la que pueda acceder la herramienta de geoprocesamiento Crear geodatabase corporativa.

En la mayoría de los casos, el cliente de ArcGIS se instalará en un equipo distinto de Oracle. Por lo tanto, debe tener un cliente de Oracle compatible en el equipo cliente de ArcGIS para conectarse a la instancia de Oracle. Consulte la documentación de Oracle para determinar la versión del cliente de Oracle que debe instalar para conectarse a la versión de Oracle que está utilizando y para obtener instrucciones de instalación y configuración del cliente.

  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. Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.

    Si se conecta desde un cliente de ArcGIS de 32 bits (como ArcMap), debe instalar un cliente de Oracle de 32 bits. Esto es así aun cuando instale la aplicación cliente de ArcGIS en un equipo con un sistema operativo de 64 bits y la base de datos y el sistema operativo del servidor sean de 64 bits. Si se conecta desde un cliente de ArcGIS de 64 bits (como ArcGIS Server o ArcGIS Pro), debe instalar un cliente deOracle de 64 bits.

    Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte las instrucciones de instalación en la documentación de Oracle.

  3. Defina la variable de entorno del sistema operativo o el perfil de usuario para incluir la ruta y nombre del directorio en el que se instaló el cliente de Oracle.

    • En Linux, configure la variable de entorno LD_LIBRARY_PATH.
    • En Windows, establezca la variable de entorno PATH. Si ArcMap está instalado en el mismo equipo de Windows que ArcGIS Pro o ArcGIS Server, configure la variable PATH de modo que lea el cliente de 64 bits antes que el cliente de 32 bits. Por ejemplo, si el cliente de Oracle de 32 bits está instalado enc:\Program Files (x86)\Oracle y Oracle Instant Client de 64 bits está instalado en c:\Program Files\Oracle, agregue lo siguiente al comienzo del valor de la variable PATH: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.

  4. Si el cliente de ArcGIS ya se estaba ejecutando, reinícielo para reconocer el cliente de Oracle y nuevas variables de entorno.
  5. Puede conectarse desde ArcGIS a Oracle con una cadena Easy Connect. Sin embargo, el administrador de base de datos debe configurar la base de datos Oracle para permitir cadenas Easy Connect. Si tiene el cliente completo de Oracle instalado, pero desea usar la sintaxis de Easy Connect para conectarse, compruebe que el archivo sqlnet.ora del cliente está configurado de modo que permita el uso de Easy Connect y que el administrador de base de datos ha configurado el servidor deOracle para permitir la sintaxis de Easy Connect. Consulte la documentación de Oracle para obtener más instrucciones.

Ahora puede crear una geodatabase.

Crear una geodatabase

El administrador de la geodatabase puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS Desktop (Desktop Standard o Desktop Advanced) o ejecutar un script de Python desde un cliente de ArcGIS Desktop, ArcGIS Server o ArcGIS Engine para crear una geodatabase en la base de datos existente.

Ejecutar la herramienta Habilitar geodatabase corporativa ArcGIS Desktop

Si tiene acceso, puede ejecutar la herramienta Habilitar geodatabase corporativa para crear una geodatabase.

Siga estos pasos para crear una geodatabase usando la herramienta Habilitar geodatabase corporativa en ArcGIS Desktop:

  1. Inicie un cliente de ArcGIS Desktop.
  2. Conéctese a la base de datos Oracle como el usuario sde.

    Asegúrese de guardar la contraseña del usuario en el cuadro de diálogo Conexión de base de datos.

  3. Abra la herramienta de geoprocesamiento Habilitar geodatabase corporativa.
  4. Utilice la conexión de base de datos que creó en el paso 2 como Conexión de base de datos de entrada.
  5. Navegue al archivo de autorización 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 el servidor donde está instalado el software. Si autorizó ArcGIS Server en un equipo con Linux, el archivo de códigos clave 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 ha hecho, autorice ArcGIS Server para crear este archivo. Copie el archivo de códigos clave en una ubicación a la que pueda acceder la herramienta.

  6. Haga clic en Aceptar (ArcMap o ArcCatalog) o Ejecutar (ArcGIS Pro).

Se crea una geodatabase en la base de datos.

Los mensajes relativos a la creación de la geodatabase se escriben 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 de registro para solucionarlo.

Si los clientes accederán a la geodatabase mediante SQL, configure Oracle extproc para permitir el acceso.

A continuación, el administrador de base de datos puede sincronizar la configuración de open_cursors entre Oracle y la geodatabase utilizando el procedimiento almacenado de sde.gdb_util.update_open_cursors.

Ejecutar un script de Python

Si desea crear la geodatabase ejecutando un script desde una instalación de ArcGIS Server, ArcGIS Desktop o ArcGIS Engine, puede usar el script que se proporciona aquí.

  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 Linux, el archivo enable_gdb.py se ejecuta para una instancia de Oracle con un SID de orcl. La instancia se está ejecutando en server gisprod. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.

    enable_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH 
    -u sde -p Tgdbst@rtsh3r3 -l '/usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes'

    En este ejemplo, se ejecuta el mismo script desde un equipo con Windows:

    create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys
     -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l '\\Program Files\ESRI\License\sysgen\keycodes'
    Sugerencia:

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

Ahora tiene una geodatabase en la base de datos de Oracle.

Los mensajes relativos a la creación de la geodatabase se escriben 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. Si tiene algún problema al crear una geodatabase, compruebe este archivo de registro para solucionarlo.

A continuación, el administrador de base de datos puede sincronizar la configuración de open_cursors entre Oracle y la geodatabase utilizando el procedimiento almacenado de sde.gdb_util.update_open_cursors.