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 cliente de ArcGIS.
Cuando se crea una geodatabase en ArcGIS Pro 3.3, la versión de la geodatabase es 11.3.0.
Comience por leer los requisitos previos y 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, realice lo siguiente:
- Confirme que la combinación de ArcGIS, Oracle y el sistema operativo que desea usar sea compatible.
- Obtenga los clientes de Oracle necesarios para conectarse a la versión de Oracle que usará para almacenar su 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.
- Determine quién creará la geodatabase, ya que influye en qué herramienta se 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 roles de inicios de sesión, puede usar la herramienta de geoprocesamiento Crear geodatabase corporativa o un script de Python que llame a esta herramienta, para crear una geodatabase en Oracle.
La herramienta Crear geodatabase corporativa crea el usuario sde, el esquema y el espacio de tablas, además de otorgar los privilegios al usuario sde que se necesitan para crear la geodatabase. 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.
- 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 por su parte (o por parte del departamento de TI) 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 ArcGIS para Oracle antes de crear una geodatabase para asegurarse de que la combinación de Oracle, ArcGIS y hardware que desea utilizar sea compatible.
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_Geometry de Esri:
- Ejecutar funciones ST_Geometry de SQL desde clientes SQL.
- Definir una capa de consulta que ejecute funciones SQL en columnas de ST_Geometry.
- Consultar capas de entidades en bins en ArcGIS Pro.
- Publicar una capa web que haga referencia a los datos de la base de datos de Oracle.
- Ejecute la herramienta de geoprocesamiento Seleccionar capa por ubicación con la opción Intersecar (DBMS).
Una vez que Oracle se haya instalado y configurado, instale los clientes de ArcGIS y Oracle.
Instalar y configurar clientes
Puede instalar ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (enterprise edition) y ejecutar un script para crear una geodatabase. Para ejecutar la herramienta de geoprocesamiento Crear geodatabase corporativa en lugar de una secuencia de comandos, instale 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.
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 Oracle.
- 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.
- Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.
Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte las instrucciones de instalación en la documentación de Oracle.
- 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 Microsoft Windows, establezca la variable de entorno 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, pero debe configurar su base de datos de 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 Pro (Desktop Standard o Desktop Advanced) o ejecutar un script de Python desde un equipo de ArcGIS Pro o ArcGIS Server para crear un usuario sde, un esquema, un espacio de tablas o una geodatabase.
Ejecutar la herramienta Crear geodatabase corporativa
Puede ejecutar una herramienta de geoprocesamiento para crear la geodatabase en ArcGIS Pro.
Siga estos pasos para crear una geodatabase usando la herramienta Crear geodatabase corporativa:
- Inicie ArcGIS Pro.
- 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 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.
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 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 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, debe 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.
- Para crear 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.
- Para especificar un Archivo de autorización, busque y seleccione el archivo de códigos clave que se creó cuando autorizó ArcGIS Server.
Si aún no lo ha hecho, autorice ahora a ArcGIS Server a crear el archivo de códigos clave. 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.
- Haga clic en Ejecutar.
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, revise 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 ArcGIS Pro (Desktop Standard o Desktop Advanced) o un equipo con ArcGIS Server.
- 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 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.management.CreateEnterpriseGeodatabase(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)
- Guarde el archivo con una extensión .py.
- 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, revise 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 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 para asegurarse de que el sistema de administración de bases de datos, ArcGIS y las combinaciones de hardware que desea utilizar son compatibles.
- Cree un usuario y esquema sde.
- Otorgue al usuario sde los privilegios necesarios para crear una geodatabase. Consulte la lista de los privilegios necesarios en Privilegios para geodatabases en Oracle.
- Cree un espacio de tabla para el usuario sde y establézcalo como su espacio predeterminado.
- Otorgue privilegios de execute 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 debe configurar el archivo extproc de Oracle para acceder a las bibliotecas ST_Geometry de Esri:
- Ejecutar funciones ST_Geometry de SQL desde clientes SQL.
- Definir una capa de consulta que ejecute funciones SQL en columnas de ST_Geometry.
- Consultar capas de entidades en bins en ArcGIS Pro.
- Publicar una capa web que haga referencia a los datos de la base de datos de Oracle.
- Ejecute la herramienta de geoprocesamiento Seleccionar capa por ubicación con la opción Intersecar (DBMS).
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 Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server para ejecutar un script de Python y crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de un script, instale 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.
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.
- 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.
- Instale y configure un cliente de Oracle en el equipo cliente de ArcGIS.
Puede obtener el cliente Oracle Instant, Runtime o Administrator de Oracle. Consulte las instrucciones de instalación en la documentación de Oracle.
- 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 el cliente de ArcGIS ya se estaba ejecutando, reinícielo para reconocer el cliente de Oracle y nuevas variables de entorno.
Ahora puede crear una geodatabase.
Crear una geodatabase
El administrador de la geodatabase puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS Pro (Desktop Standard o Desktop Advanced), o ejecutar un script de Python desde un equipo con ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server para crear una geodatabase en la base de datos existente.
Ejecutar la herramienta Habilitar geodatabase corporativa ArcGIS Desktop
Ejecute la herramienta de geoprocesamiento desde ArcGIS Pro para crear una geodatabase.
Siga estos pasos para crear una geodatabase usando la herramienta de geoprocesamiento Habilitar geodatabase corporativa:
- Inicie ArcGIS Pro.
- Conéctese a la base de datos Oracle como el usuario sde.
Guarde la contraseña del usuario en el cuadro de diálogo Conexión de base de datos.
- Abra la herramienta de geoprocesamiento Habilitar geodatabase corporativa.
- Utilice la conexión de base de datos que creó en el paso 2 para Conexión de base de datos de entrada.
- Navegue al archivo de autorización que se creó cuando autorizó ArcGIS Server y agréguelo al cuadro de texto Archivo de autorización.
Si aún no lo ha hecho, autorice ArcGIS Server para crear este archivo. 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. Copie el archivo de códigos clave en una ubicación a la que pueda acceder la herramienta.
- Haga clic en Ejecutar.
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, revise 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 o ArcGIS Pro, puede usar el script 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 """ # 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)
- Guarde el archivo con una extensión .py.
- 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, revise 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.