Crear geodatabase corporativa (Administración de datos)

Resumen

La herramienta Crear geodatabase corporativa crea una base de datos, ubicaciones de almacenaje y un usuario de bases de datos para utilizar como administrador y propietario de geodatabase, dependiendo del sistema de administración de base de datos que se utiliza (DBMS). Concede privilegios del administrador de geodatabase necesarios para crear una geodatabase y luego crea una geodatabase en la base de datos.

Uso

Sintaxis

CreateEnterpriseGeodatabase_management (database_platform, instance_name, {database_name}, {account_authentication}, {database_admin}, {database_admin_password}, {sde_schema}, {gdb_admin_name}, {gdb_admin_password}, {tablespace_name}, authorization_file)
ParámetroExplicaciónTipo de datos
database_platform
[database_platform,...]

Especificar el tipo de sistema de administración de bases de datos al cual se conectará para crear una geodatabase.

  • OracleIndica que está conectado a una instancia Oracle
  • PostgreSQLIndica que está conectado a un clúster de base de datos PostgreSQL
  • SQL_ServerIndica que está conectado a una instancia SQL Server
String
instance_name

Para SQL Server, escriba el nombre de la instancia de SQL Server. Para Oracle, escriba el nombre de TNS o la cadena de caracteres de Oracle Easy Connection. Para PostgreSQL, escriba el nombre del servidor donde se instaló PostgreSQL.

String
database_name
(Opcional)

Este parámetro es válido sólo para tipos PostgreSQL y SQL Server DBMS. Escriba el nombre de una base de datos existente, configurada previamente o el nombre de una base de datos que se va a crear. Si permite que la herramienta cree la base de datos en SQL Server, los tamaños de archivo 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. Tanto los archivos MDF como LDF se crean en la ubicación predeterminada de SQL Server en el servidor de base de datos. Si permite que la herramienta cree la base de datos en PostgreSQL, la base de datos template1 se utilizará como plantilla para la base de datos.

String
account_authentication
(Opcional)

Especificar el tipo de autorización a utilizar para la conexión de la base de datos.

  • OPERATING_SYSTEM_AUTHLa información de inicio de sesión que proporcionó al ingresar en el equipo en el que está ejecutando la herramienta se utilizará para autenticar la conexión de la base de datos. Si el DBMS no está configurado para permitir la autenticación del sistema operativo, la autenticación fallará.
  • DATABASE_AUTHPara autenticarse en la base de datos, debe proporcionar un nombre de usuario y contraseña en la base de datos. Este es el método predeterminado de autenticación. Si el DBMS no está configurado para permitir la autenticación de la base de datos, la autenticación fallará.
Boolean
database_admin
(Opcional)

Si utiliza la autenticación de la base de datos, debe especificar un usuario administrador de base de datos. Para Oracle, el administrador de base de datos es sys. Para Postgres, es el superusuario de postgres. Para SQL Server, es un miembro del rol de servidor fijo sysadmin.

String
database_admin_password
(Opcional)

Escriba la contraseña para el administrador de base de datos. Si utiliza la autenticación de la base de datos, debe especificar la contraseña del usuario administrador de base de datos.

Encrypted String
sde_schema
(Opcional)

Este parámetro es importante para SQL Server e indica si la geodatabase se creó en el esquema de un usuario llamado sde o en el esquema dbo en la base de datos. Si va a crear una geodatabase con esquema dbo, debe conectarse como un usuario dbo en instancia SQL Server. Por lo tanto, si utiliza la autenticación del sistema operativo, el inicio de sesión que debe utilizar debe ser dbo en instancia SQL Server.

  • SDE_SCHEMAUn usuario llamado sde es propietario del repositorio de la geodatabase y se almacena en su esquema. Esta es la opción predeterminada.
  • DBO_SCHEMAEl repositorio de la geodatabase se almacena en el esquema dbo en la base de datos.
Boolean
gdb_admin_name
(Opcional)

Si utiliza PostgreSQL, este valor debe ser sde. Si el rol de inicio de sesión sde no existe, esta herramienta lo crea y le otorga privilegios de superusuario. También crea un esquema sde en la base de datos. Si el rol de inicio de sesión sde existe, esta herramienta le otorga privilegios de superusuario si aún no los tiene.

Si utiliza Oracle, el valor predeterminado es sde. Sin embargo, si está creando una geodatabase del esquema de usuario dentro de una geodatabase maestra sde, especifique el nombre del usuario que será propietario de la geodatabase. Si el usuario no existe en el DBMS, la herramienta Crear geodatabase corporativa crea el usuario y le otorga los privilegios requeridos para crear y actualizar una geodatabase y anular conexiones de usuario al DBMS. Si el usuario ya existe, la herramienta le otorgará al usuario los privilegios requeridos.

Si utiliza SQL Server y especificó una geodatabase del esquema sde, este valor debe ser sde. La herramienta creará un inicio de sesión sde, un usuario de base de datos y un esquema y le otorgará privilegios para crear una geodatabase y anular las conexiones a la instancia de SQL Server. Si especificó un esquema dbo, no proporcione un valor para este parámetro.

String
gdb_admin_password
(Opcional)

Escriba la contraseña para el usuario administrador de la geodatabase. Si ya existe el usuario administrador en la geodatabase en DBMS, la contraseña que escriba debe coincidir con la contraseña existente. Si el usuario administrador de la geodatabase no existe, escriba una contraseña válida de base de datos para el nuevo usuario. La contraseña debe cumplir la política de contraseña del DBMS.

La contraseña es una cadena de caracteres cifrados en geoprocesamiento.

Encrypted String
tablespace_name
(Opcional)

Este parámetro es válido sólo para tipos Oracle y Postgre DBMS. Para Oracle, realice una de las siguientes acciones:

  • Proporcione el nombre de un espacio de tabla existente que se utilizará como el espacio de tabla predeterminado para el usuario sde.
  • Escriba un nombre válido y un espacio de tabla de 400 MB se creará en la ubicación de almacenamiento predeterminada de Oracle y se establecerá como el espacio de tabla predeterminado del usuario sde.
  • Deje el espacio de tabla en blanco, y el espacio de tabla SDE_TBS (400 MB) se creará y se establecerá como el espacio de tabla predeterminado para el usuario sde.

Para PostgreSQL, debe proporcionar el nombre de un espacio de tabla existente que se utilizará como el espacio de tabla predeterminado para la base de datos o deje este parámetro en blanco. Esta herramienta no crea un espacio de tabla en PostgreSQL. Si no proporciona un valor para este parámetro, la base de datos se crea en el espacio de tabla pg_default en PostgreSQL.

String
authorization_file

Proporcione la ruta y el nombre de archivo del archivo de códigos clave que se creó cuando autorizó ArcGIS for Server Enterprise. Este archivo se encuentra en la carpeta \\Archivos de programa\ESRI\License<release#>\sysgen en Windows y en el directorio /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen en Linux. Si aún no lo hizo, autorice ArcGIS for Server para crear este archivo.

File

Ejemplo de código

CrearGeodatabase ejemplo 1

La siguiente secuencia de comandos crea una geodatabase en una base de datos de Oracle. Crear un usuario sde y un espacio de tabla predeterminados, sdetbs para el usuario sde. El archivo de códigos clave se encuentra en un servidor Linux remoto.

#Import arcpy module import arcpy  arcpy.CreateEnterpriseGeodatabase("ORACLE", "ora11g:1521/elf", "", "DATABASE_AUTH", "sys", "manager", "", "sde", "supersecret", "sdetbs", "//myserver/mymounteddrive/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.1/sysgen/keycodes")
CrearGeodatabase ejemplo 2

Esta secuencia de comandos se conecta a la instancia de SQL Server (tor\ssinstance) para crear una base de datos llamada sp_data y una geodatabase con esquema sde en ella. La conexión se realiza al utilizar la autenticación del sistema operativo. El archivo de códigos clave se encuentra en un servidor de Windows remoto.

#Import arcpy module import arcpy  arcpy.CreateEnterpriseGeodatabase("SQLSERVER", "tor\ssinstance1", "sp_data", "OPERATING_SYSTEM_AUTH", "", "", "SDE_SCHEMA", "sde", "sde", "", "//myserver/Program Files/ESRI/License10.1/sysgen/keycodes")
CrearGeodatabase ejemplo 3

Esta secuencia de comandos conecta a un clúster de la base de datos de PostgreSQL en un servidor llamado feldspar. Se creó el usuario sde como una base de datos, pggdb en el espacio de tabla existente, gdbspace. El archivo de códigos clave se encuentra en el servidor Linux local.

#Import arcpy module import arcpy  arcpy.CreateEnterpriseGeodatabase("POSTGRESQL", "feldspar", "pggdb", "DATABASE_AUTH", "postgres", "averturis", "", "sde", "nomira", "gdbspace", "/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.1/sysgen/keycodes")
CrearGeodatabase secuencia de comandos independiente

La siguiente secuencia de comandos independiente de Python le permite proporcionar la información específica de su sitio utilizando las opciones.

"""
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 release")

#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")
# 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"
				sys.exit(3)
			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)

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Temas relacionados

9/11/2013