Disponible con una licencia Standard o Advanced.
La forma de configurar una geodatabase depende de las situaciones del sitio. Siga las instrucciones de los escenarios correspondientes a su organización.
- Usted es el administrador de base de datos y de la geodatabase.
- El administrador de Oracle configura la base de datos; el administrador de la geodatabase crea la geodatabase.
- Desea almacenar varias geodatabases en la misma base de datos Oracle.
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 una secuencia de comandos 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 tabla 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 mediante Oracle Data Pump (solo Oracle 12c)
- 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.
Antes de ejecutar la herramienta o secuencia de comandos para crear una geodatabase, debe configurar Oracle.
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 ArcGIS para asegurarse de que las combinaciones de hardware, Oracle y ArcGIS que desea utilizar son compatibles.
Si va a utilizar SQL para acceder a datos espaciales utilizando las funciones ST_Geometry de Esri o si va a utilizar el tipo ST_Raster, configure extproc de Oracle para acceder a la biblioteca de formas ST_Geometry o a la biblioteca ST_Raster de Esri, respectivamente.
Una vez que Oracle se haya instalado y configurado, instale los clientes de ArcGIS y Oracle.
Configurar un cliente de ArcGIS
Puede ejecutar una secuencia de comandos de Python desde ArcGIS for Desktop (Estándar o Avanzado), desde ArcGIS Engine Runtime con la extensión Geodatabase Update o desde ArcGIS for Server para crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Crear geodatabase corporativa en lugar de una secuencia de comandos, use ArcGIS for Desktop.
En la mayoría de los casos, su cliente de ArcGIS se instalará en otro equipo que 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 utilice y para obtener instrucciones de instalación y configuración del cliente.
- 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.
- Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.
Si se conecta desde un cliente de ArcGIS de 32 bits, 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, debe instalar un cliente de Oracle de 64 bits.
Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte la documentación de Oracle para obtener instrucciones sobre la instalación.
- 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 la documentación de Oracle para obtener instrucciones sobre la instalación.
. - En Windows, establezca la variable de entorno PATH. Si ArcGIS for Server y ArcGIS for Desktopestán instalados en el mismo equipo Windows, establezca 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 en c:\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;.
- En Linux, configure la variable de entorno LD_LIBRARY_PATH.
- Si el cliente de ArcGIS ya se estaba ejecutando, reinícielo para reconocer el cliente de Oracle y nuevas variables de entorno.
- 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 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 for Desktop (Standard o Advanced) o ejecutar una secuencia de comandos de Python desde un cliente de ArcGIS for Desktop, ArcGIS for Server o ArcGIS Engine para crear un usuario sde, un esquema, un espacio de tabla y una geodatabase.
Ejecutar la herramienta Crear geodatabase corporativa
Si tiene acceso a ArcGIS for Desktop, puede ejecutar una herramienta de geoprocesamiento para crear la geodatabase.
- Inicie ArcMap o ArcCatalog.
- 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.
- Elija Oracle en la lista desplegable Plataforma de la base de datos.
- Proporcione la información requerida para conectar la instancia de Oracle.
- Si ya configuró el cliente Oracle para usar un alias de red de TNS, escriba el alias del servicio 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.
Consulte la lista de posibles cadenas Easy Connect en Conectarse a Oracle desde ArcGIS.
- Escriba la contraseña del usuario del sistema en el cuadro de texto Contraseña del administrador de la base de datos.
- 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.
- 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.
- 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 tabla, 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.
- Para especificar un Archivo de autorización, busque y seleccione el archivo de códigos clave que se creó cuando autorizó ArcGIS for Server Enterprise.
Este archivo se escribe en la carpeta \\Program Files\ESRI\License<release#>\sysgen en servidores de Windows. Si aún no lo ha hecho, autorice ArcGIS for Server ahora para crear este archivo.
- Haga clic en el botón Aceptar para ejecutar la herramienta.
Se crea una geodatabase en su base de datos Oracle.
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.
A continuación, puede crear un usuario que puede cargar datos en la geodatabase.
Ejecutar una secuencia de comandos de Python
Puede copiar, guardar y ejecutar la secuencia de comandos proporcionada aquí para crear una geodatabase desde ArcGIS for Desktop (Standard o Advanced), ArcGIS for Server (Standard o Advanced) o ArcGIS Runtime (con la extensión Geodatabase Update).
-
Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él la secuencia de comandos 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 """ # Import system modules import arcpy import os import optparse import 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', ''], 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: Do not specify 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 applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and master sde geodatabase in Oracle") 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; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS for Server Enterprise authorized, and stored in \\Program Files\ESRI\License<release#>\sysgen on Windows or /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen on Linux") # 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 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( gdb_admin.lower() != "sde"): if (database_type == "ORACLE"): print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle...\n") else: print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type)) 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) 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)
- 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 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/License10.3/sysgen/keycodes
En este ejemplo, se ejecuta la misma secuencia de comandos 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\License10.3\sysgen\keycodes
Ahora tiene una geodatabase en Oracle.
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.
Si los clientes accederán a la geodatabase mediante SQL, configure Oracle extproc para permitir el acceso.
A continuación, puede crear un usuario que puede cargar datos en 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 una secuencia de comandos 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.
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 información de instalación y configuración en la documentación de 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.
Además, si va a utilizar SQL para acceder a datos espaciales utilizando las funciones ST_Geometry de Esri o si va a utilizar el tipo ST_Raster, el administrador de la base de datos debe configurar extproc de Oracle para acceder a la biblioteca de formas ST_Geometry o a la biblioteca ST_Raster de Esri.
Una vez que Oracle se haya instalado y configurado, el administrador de la geodatabase puede instalar los clientes de ArcGIS y Oracle.
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 Crear geodatabase corporativa en lugar de una secuencia de comandos, use ArcGIS for Desktop.
En la mayoría de los casos, su cliente de ArcGIS se instalará en otro equipo que 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 utilice y para obtener instrucciones de instalación y configuración del cliente.
- 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.
- Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.
Si se conecta desde un cliente de ArcGIS de 32 bits, debe instalar un cliente de Oracle de 32 bits. Esto es así aun cuando instala 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, debe instalar un cliente de Oracle de 64 bits.
Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte la documentación de Oracle para obtener instrucciones sobre la instalación.
- 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 ArcGIS for Server y ArcGIS for Desktopestán instalados en el mismo equipo Windows, establezca 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 en c:\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;.
- Si el cliente de ArcGIS ya se estaba ejecutando, reinícielo para reconocer el cliente de Oracle y nuevas variables de entorno.
- 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 bases de datos ha configurado el servidor de Oracle 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 for Desktop (Standard o Advanced) o una secuencia de comandos de Python desde un cliente de ArcGIS for Desktop, ArcGIS for Server o ArcGIS Engine para crear una geodatabase en la base de datos existente.
Ejecutar la herramienta Habilitar geodatabase corporativa
Si tiene acceso a ArcGIS for Desktop, puede ejecutar la herramienta Habilitar geodatabase corporativa para crear una geodatabase.
- Inicie ArcMap o ArcCatalog.
- Conéctese a la base de datos Oracle desde el árbol de Catálogo como usuario sde.
Asegúrese de guardar la contraseña del usuario 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 y el campo Conexión de la base de datos de entrada se completa con el nombre y la ubicación del archivo de conexión.
- Navegue al archivo de autorización 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 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 hizo, autorice ArcGIS for Server para crear este archivo.
- Haga clic en el botón Aceptar para ejecutar la herramienta.
Se crea una geodatabase en la base de datos.
La herramienta crea el archivo de registro GDBCreateGeodatabase<#>.log en el directorio especificado para su variable %TEMP% en el equipo donde se ejecuta la herramienta. Si tiene algún problema al ejecutar la herramienta, verifique este archivo de registro para solucionar el problema.
Si los clientes accederán a la geodatabase mediante SQL, configure Oracle extproc para permitir el acceso.
A continuación, puede crear un usuario que puede cargar datos en la geodatabase.
Ejecutar una secuencia de comandos de Python
Si desea crear la geodatabase ejecutando una secuencia de comandos desde una instalación de ArcGIS for Server, ArcGIS for Desktop o ArcGIS Engine en un equipo con Windows, puede usar la secuencia de comandos que se proporciona aquí.
- 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 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/License10.3/sysgen/keycodes
En este ejemplo, se ejecuta la misma secuencia de comandos 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\License10.3\sysgen\keycodes
Ahora tiene una geodatabase en la base de datos Oracle.
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.
Si los clientes accederán a la geodatabase mediante SQL, configure Oracle extproc para permitir el acceso.
A continuación, puede crear un usuario que puede cargar datos en la geodatabase.
Desea almacenar varias geodatabases en la misma base de datos Oracle
Una vez que se ha creado una geodatabase en el esquema de usuario sde (también denominada geodatabase sde maestra) con los procedimientos descritos en las secciones anteriores, otros usuarios pueden crear una geodatabase en sus esquemas. Puede permitir a otros usuarios crear sus propias geodatabases para agrupar y separar datos de diferentes equipos o proyectos.
Las siguientes reglas se aplican a geodatabases en los esquemas de usuario:
- Las geodatabases son propiedad del usuario que las crea. Ese usuario es el usuario administrador de la geodatabase y necesita privilegios de administrador de la geodatabase. Consulte los privilegios del administrador de la geodatabase específicos en Privilegios para geodatabases en Oracle.
- Un usuario puede poseer sólo una geodatabase.
- Solo el propietario de la geodatabase del esquema de usuario puede ser propietario de los datos de la geodatabase.
- Si un usuario es propietario de una geodatabase, no puede ser propietario de datos en la geodatabase sde maestra.
- Si un usuario es propietario de datos de la geodatabase sde maestra, no puede ser propietario de una geodatabase de esquema de usuario.
- Se necesitará más tiempo para conectarse a la base de datos Oracle cuanto mayor sea la cantidad de geodatabases de esquema de usuario que cree y utilice. Esto se hace especialmente evidente si las geodatabases de esquema de usuario contienen una combinación de tablas de geodatabase y tablas que no están registradas con la geodatabase.
Una vez que exista la geodatabase sde maestra, podrá usar cualquiera de las herramientas o secuencias de comandos mencionadas anteriormente para crear una geodatabase de esquema de usuario.
- Crear geodatabase corporativa: como se mencionó antes en este tema, es necesario que el usuario ejecute la herramienta Crear geodatabase corporativa para conocer la contraseña del usuario del sistema. Por lo tanto, el administrador de base de datos debe ejecutar esta herramienta. Asegúrese de que se especifique el nombre del propietario del esquema para el administrador de la geodatabase.
- Habilitar geodatabase corporativa: si no tiene acceso a la contraseña del usuario del sistema, el administrador de base de datos puede otorgarle los privilegios necesarios para crear una geodatabase. A continuación, podrá conectarse a la geodatabase con su nombre de usuario y ejecutar la herramienta Habilitar geodatabase corporativa o una secuencia de comandos para crear una geodatabase en su esquema.