Disponible con una licencia Standard o Advanced.
La forma de configurar una geodatabase en Microsoft SQL Server depende de las situaciones del sitio. Siga las instrucciones de los escenarios correspondientes a su organización.
- Usted es el administrador de SQL Server y de la geodatabase.
- El administrador de SQL Server crea la base de datos; el administrador de la geodatabase crea la geodatabase.
Usted es el administrador de SQL Server 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 nombres de usuario, puede usar la herramienta de geoprocesamiento Crear geodatabase corporativa o una secuencia de comandos de Python para crear una geodatabase en SQL Server.
La herramienta Crear geodatabase corporativa facilita la configuración de una geodatabase porque crea los objetos de base de datos y otorga los privilegios que necesita. Para lograrlo, se usa una configuración predeterminada específica. A continuación se describe lo que hace la herramienta Crear geodatabase corporativa y la configuración que utiliza:
- Crea los archivos de la base de datos (MDF y LDF) en la ubicación predeterminada de SQL Server en el servidor.
- Establece las opciones de base de datos de SQL Server READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION en ON.
- Los tamaños de archivo de la base de datos serán los mismos que ha definido para la base de datos de modelo SQL Server o 500 MB para el archivo MDF y 125 MB para el archivo LDF, lo que sea mayor.
- Si elige crear una geodatabase en un esquema llamado sde, la herramienta crea un nombre de usuario autenticado de SQL Server sde en la instancia de SQL Server, crea un usuario sde en la base de datos y lo asigna al nombre de usuario sde, crea un esquema sde en la base de datos y otorga al usuario sde privilegios para crear una geodatabase y anular las conexiones a la instancia de SQL Server.
- Crea una geodatabase.
Antes de ejecutar la herramienta o secuencia de comandos para crear una geodatabase, debe configurar una instancia de SQL Server.
Configurar SQL Server
Antes de crear una geodatabase es preciso instalar SQL Server y configurar la instancia. La configuración de la instancia depende de las necesidades específicas de su organización. No obstante, tenga en cuenta que la instancia de SQL Server debe utilizar una intercalación que distinga entre mayúsculas y minúsculas.
Verifique los requisitos del sistema de ArcGIS antes de crear 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. Una vez que haya instalado SQL Server, asegúrese de configurar la instancia de SQL Server para aceptar conexiones remotas; las conexiones remotas no están habilitadas de forma predeterminada.
Consulte la documentación de Microsoft para obtener la información de instalación y configuración de SQL Server.
Una vez que SQL Server se haya instalado y configurado, instale los clientes de ArcGIS y SQL Server.
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, los clientes de ArcGIS se instalan en un equipo distinto de SQL Server. Por lo tanto, debe tener instalada la versión compatible de SQL Server Native Client en el equipo cliente de ArcGIS para conectarse a una base de datos. Consulte la documentación de Microsoft para determinar qué versión de SQL Server Native Client debe instalar para conectarse a la versión de SQL Server que usa.
Puede descargar SQL Server Native Client desde My Esri o desde el Centro de descargas de Microsoft. Siga las instrucciones de Microsoft para instalar SQL Server Native Client en el equipo 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 un cliente de SQL Server en el equipo cliente de ArcGIS.
Si está instalando el cliente nativo de SQL Server en un sistema operativo de 64 bits, utilice el cliente nativo de SQL Server ejecutable de 64 bits. Este archivo ejecutable instala el cliente de 32 y 64 bits, lo que le permite trabajar con aplicaciones de 32 y 64 bits. Si ejecuta el cliente nativo de SQL Server de 32 bits en un sistema operativo de 64 bits, no funcionará.
Ahora puede crear una geodatabase.
Crear una geodatabase
Puede ejecutar la herramienta Crear geodatabase corporativa desde ArcGIS for Desktop o ejecutar una secuencia de comandos de Python desde un cliente de ArcGIS for Desktop, ArcGIS for Server o ArcGIS Engine para crear tanto una base de datos como 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 SQL Server de la lista desplegable Plataforma de base de datos.
- Escriba el nombre de la instancia de SQL Server a la que desea conectarse en el cuadro de texto instancia .
- En el cuadro de texto Base de datos, escriba el nombre de la base de datos en la que desea almacenar su geodatabase.
Si una base de datos con ese nombre aún no existe en la instancia SQL Server, ésta se creará. Si ya existe, la base de datos que especifique se utilizará para almacenar la geodatabase.
-
Conéctese a SQL Server como un administrador del sistema. Esto se puede realizar con un inicio autenticado del sistema operativo que es un miembro de la función fija del servidor sysadmin en SQL Server o al escribir una contraseña y nombre de usuario de la base de datos para un usuario sysadmin.
- Para iniciar sesión con un inicio de sesión autenticado de sistema operativo sysadmin, marque la opción Autenticación del sistema operativo. Debe haber iniciado sesión en Windows con el inicio de sesión correcto para utilizar esta opción.
- Para iniciar sesión como sysadmin, escriba el nombre de usuario sysadmin en el cuadro de texto Administrador de base de datos y la contraseña de la base de datos correspondiente en el cuadro de texto Contraseña.
- Elija el esquema que contendrá la geodatabase:
- Si desea que el usuario denominado sde sea el administrador de geodatabase y que la geodatabase se almacene en el esquema del usuario sde, active Esquema propio de Sde.
- Si desea que el usuario dbo sea el administrador de geodatabase y que la geodatabase se almacene en un esquema dbo de, desactive el Esquema propiedad de Sde.
Para obtener más información sobre cómo almacenar la geodatabase en el esquema sde o dbo, consulte Una comparación de propietarios de geodatabase en SQL Server.
- Escriba una contraseña para el administrador de la geodatabase en el cuadro de texto Contraseña del administrador de geodatabase.
Si el administrador de la geodatabase que especificó ya existe en la base de datos, asegúrese de escribir la contraseña correcta para el usuario existente; esta herramienta no cambiará la contraseña.
- 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.
Si elige un esquema de sde, el cuadro de texto Administrador de Geodatabase se llenará previamente con sde. Si no existe un usuario con ese nombre, se crearán el usuario y su correspondiente esquema, y se otorgarán al usuario los privilegios requeridos para crear una geodatabase.
Si utiliza la autenticación de la base de datos y un esquema dbo para almacenar la geodatabase, escriba el nombre de un usuario que sea dbo en la instancia SQL Server en el cuadro de texto Administrador de Geodatabase.
Si utiliza la autenticación del sistema operativo para conectarse a la base de datos, su nombre de usuario actual debe estar en el rol de servidor fijo sysadmin de SQL Server para crear una geodatabase de esquema dbo.
Si no especificó una base de datos existente, se crearán una base de datos y los archivos de registro en la ubicación predeterminada de SQL Server. Se crea una geodatabase en la base de datos. Si eligió una geodatabase de esquema sde, se crean un inicio de sesión sde autenticado de SQL Server, una base de datos y un esquema de usuario.
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, se ejecuta el archivo create_gdb.py para crear la base de datos, entgdb, en la instancia de SQL Server porthos\gisprod. La herramienta se ejecuta como usuario sa con la autenticación de la base de datos y crea una geodatabase en el esquema de usuario 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 SQL_SERVER -i porthos\gisprod -D entgdb --auth DATABASE_AUTH -U sa -P N0pe3king! --schema SDE_SCHEMA -u sde -p Tgdbst@rtsh3r3 -l \\Program Files\ESRI\License10.3\sysgen\keycodes
En este ejemplo, se ejecuta la misma secuencia de comandos estando conectado al equipo cliente con un nombre de usuario que pertenece al rol de servidor fijo sysadmin para crear una geodatabase en el esquema dbo:
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth OPERATING_SYSTEM_AUTH --schema DBO_SCHEMA -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Ahora tiene una geodatabase en SQL Server.
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 secuencia de comandos.
A continuación, puede crear un usuario que puede cargar datos en la geodatabase.
El administrador de SQL Server crea la base de datos; el administrador de la geodatabase, 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 crear la base de datos y crear el nombre de usuario, el usuario y el esquema del administrador de la geodatabase. Si la geodatabase se va a almacenar en el esquema sde, el administrador de base de datos crea un nombre de usuario, un usuario y un esquema. Asimismo, si la geodatabase se va a almacenar en el esquema dbo, el administrador de base de datos crea un nombre de usuario y un usuario y asigna al usuario el papel de propietario de la base de datos. Consulte Una comparación de propietarios de geodatabase en SQL Server para obtener información sobre las opciones de almacenamiento de la geodatabase.
El administrador de la geodatabase puede conectarse a la base de datos como administrador de la geodatabase y crear una geodatabase 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 las tablas, vistas, funciones y procedimientos del sistema de geodatabase.
Configurar SQL Server
Antes de que el administrador de la geodatabase pueda crear una, el administrador de SQL Server debe hacer lo siguiente:
- Instale SQL Server y configure la instancia. La configuración de la instancia depende de las necesidades específicas de su organización. 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. Una vez que haya instalado SQL Server, asegúrese de configurar la instancia de SQL Server para aceptar conexiones remotas; las conexiones remotas no están habilitadas de forma predeterminada. Consulte la documentación de Microsoft para obtener la información de instalación y configuración de SQL Server.
- Cree una base de datos.
- Establezca las opciones de base de datos de SQL Server READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION en ON. Si el administrador de SQL Server no establece estas opciones en ON per concede permisos ALTER al administrador de la geodatabase, la herramienta Habilitar geodatabase corporativa cambiará esta configuración en la base de datos cuando se ejecute. Si el administrador de SQL Server no establece estas opciones y el administrador de la geodatabase no tiene suficientes permisos para cambiarlos, la creación de la geodatabase fallará.
- Agregue o cree un nombre de usuario asociado a un usuario de la base de datos llamado sde o a uno que sea el propietario de esta.
- Si usa una geodatabase de esquema sde, cree un esquema llamado sde en la base de datos. Establezca este como el esquema predeterminado del usuario sde.
- Si usa una geodatabase de esquema sde, el usuario sde debe contar, al menos, con los siguientes privilegios: CREATE FUNCTION, CREATE PROCEDURE, CREATE TABLE y CREATE VIEW. Consulte otros privilegios en Privilegios de SQL Server.
Configurar un cliente de ArcGIS
El administrador de la geodatabase puede ejecutar una secuencia de comandos de Python desde ArcGIS for Desktop (Estándar o Avanzado), ArcGIS Engine con la extensión Geodatabase Update o ArcGIS for Server (Standard o Advanced) para crear una geodatabase. Si desea ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de una secuencia de comandos, use ArcGIS for Desktop.
En la mayoría de los casos, los clientes de ArcGIS se instalan en un equipo distinto de SQL Server. Por lo tanto, debe tener instalada la versión compatible de SQL Server Native Client en el equipo cliente de ArcGIS para conectarse a una base de datos de SQL Server. Consulte la documentación de Microsoft para determinar qué versión de SQL Server Native Client debe instalar para conectarse a la versión de SQL Server que usa.
Puede descargar SQL Server Native Client desde My Esri o desde el Centro de descargas de Microsoft. Siga las instrucciones de Microsoft para instalar SQL Server Native Client en el equipo 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 un cliente de SQL Server en el equipo cliente de ArcGIS.
Si está instalando el cliente nativo de SQL Server en un sistema operativo de 64 bits, utilice el cliente nativo de SQL Server ejecutable de 64 bits. Este archivo ejecutable instala el cliente de 32 y 64 bits, lo que le permite trabajar con aplicaciones de 32 y 64 bits. Si ejecuta el cliente nativo de SQL Server de 32 bits en un sistema operativo de 64 bits, no funcionará.
Su cliente de ArcGIS está listo para conectarse a la base de datos y crear una geodatabase. Utilice uno de los métodos descritos en la siguiente sección.
Crear una geodatabase
El administrador de la geodatabase puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS for Desktop 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
Puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS for Desktop para crear una geodatabase en una base de datos de SQL Server existente.
- Inicie ArcMap o ArcCatalog.
-
Conéctese a la base de datos de SQL Server desde el árbol de Catálogo como administrador de la geodatabase.
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 de ArcGIS for Server 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 cuadro de 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.
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, el administrador de base de datos 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í.
Siga estos pasos para ejecutar una secuencia de comandos de Python y crear una geodatabase en una base de datos existente de SQL Server:
- 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, se ejecuta el archivo enable_gdb.py para la base de datos spdata en la instancia ssprod. La conexión se realiza con el nombre de usuario sde y la contraseña Tgdbst@rtsh3r3. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.
enable_gdb.py --DBMS SQL_SERVER -i ssprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Ahora tiene una geodatabase en la base de datos de SQL Server.
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 secuencia de comandos.
A continuación, el administrador de base de datos puede crear un usuario que puede cargar datos en la geodatabase.