Zusammenfassung
Das Werkzeug Enterprise-Geodatabase erstellen erstellt eine Datenbank, Speicherorte und einen Datenbankbenutzer, der als Geodatabase-Administrator und Besitzer der Geodatabase fungiert. Die Funktionen sind je nach verwendetem Datenbankmanagementsystem unterschiedlich. Das Werkzeug erteilt dem Geodatabase-Administrator die erforderlichen Berechtigungen, um eine Geodatabase zu erstellen, und erstellt dann eine Geodatabase in der Datenbank.
Verwendung
Die folgende Tabelle zeigt, welche Funktion das Werkzeug für die verschiedenen Typen von Datenbankmanagementsystemen (DBMS) hat:
Funktion DBMS Erstellen einer Datenbank
PostgreSQL und Microsoft SQL Server
Erstellen eines Tablespace
Oracle
Erstellen eines Geodatabase-Administratorbenutzers in der Datenbank
Oracle, PostgreSQL und SQL Server
Beachten Sie, dass das Werkzeug nur dann einen Benutzer in SQL Server erstellt, wenn Sie eine SDE-Schema-Geodatabase erstellen.
Erteilt dem Geodatabase-Administrator die zum Erstellen und Aktualisieren einer Geodatabase sowie zum Beenden von Datenbankverbindungen erforderlichen Berechtigungen
Oracle und PostgreSQL
Erteilt dem Geodatabase-Administrator die zum Erstellen einer Geodatabase und zum Beenden von Datenbankverbindungen erforderlichen Berechtigungen
SQL Server (wenn eine SDE-Schema-Geodatabase erstellt wird)
Erteilen der erforderlichen Berechtigungen zum Importieren von Daten mit Oracle Data Pump
Oracle 12c
Erstellen einer Geodatabase in der angegebenen Datenbank
Oracle, PostgreSQL und SQL Server
Sie müssen ArcGIS Desktop (Standard oder Advanced), ArcGIS Engine Runtime mit der Erweiterung "Geodatabase Update " oder ArcGIS Server auf dem Computer installiert haben, auf dem Sie die Geodatabase erstellen. Wenn Sie Oracle oder SQL Server verwenden, müssen Sie außerdem einen Datenbankmanagementsystem-Client auf dem Computer installieren und konfigurieren, auf dem der ArcGIS-Client installiert ist.
Sie müssen die Bibliothek "st_geometry" konfigurieren, bevor Sie eine Geodatabase in Oracle erstellen können. Weitere Informationen finden Sie unter Erstellen einer Geodatabase in Oracle.
Sie müssen die Bibliothek "st_geometry.so" auf dem PostgreSQL-Server speichern, bevor Sie eine Geodatabase in PostgreSQL erstellen können. Weitere Informationen finden Sie unter Erstellen einer Geodatabase in PostgreSQL unter Linux oder Erstellen einer Geodatabase in PostgreSQL unter Windows .
Dieses Werkzeug wird von Amazon Relational Database Service for PostgreSQL, Amazon Relational Database Service for SQL Server und Microsoft Azure SQL Database nicht unterstützt.
Nachdem die Geodatabase erstellt wurde, kann die Datenbank, in der sie gespeichert ist, nicht umbenannt werden. Der Name der Datenbank wird in den Geodatabase-Systemtabellen gespeichert, wo er zur vollständigen Qualifizierung der Tabellen- und Feature-Class-Namen verwendet wird. Wird also der Datenbankname durch Datenbankwerkzeuge geändert, verlieren Sie den Zugriff auf Ihre Geodatabase-Daten.
Syntax
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)
Parameter | Erläuterung | Datentyp |
database_platform | Geben Sie den Typ des Datenbankmanagementsystems an, mit dem Sie zum Erstellen einer Geodatabase eine Verbindung herstellen.
| String |
instance_name | Geben Sie für SQL Server den Namen der SQL Server-Instanz an. Beachten Sie, dass SQL Server-Instanzen, bei denen die Groß-/Kleinschreibung beachtet werden muss bzw. die eine BINARY-Sortierung aufweisen, nicht unterstützt werden. Für Oracle müssen Sie entweder den TNS-Namen oder die Oracle Easy Connection-Zeichenfolge angeben. Geben Sie für PostgreSQL den Namen des Servers an, auf dem PostgreSQL installiert ist. | String |
database_name (optional) | Dieser Parameter ist für PostgreSQL und SQL Server gültig. Sie können den Namen einer vorhandenen, vorkonfigurierten Datenbank oder den Namen für eine Datenbank eingeben, die das Werkzeug erstellt. Wenn Sie über das Werkzeug eine Datenbank in SQL Server erstellen, entspricht die Dateigröße entweder der von Ihnen definierten Größe für die SQL Server-Modelldatenbank oder die MDF-Datei beträgt 500 MB und die LDF-Datei 125 MB – je nachdem, welcher Wert größer ist. Sowohl die MDF-Dateien als auch die LDF-Dateien werden im SQL Server-Standardverzeichnis auf dem Datenbankserver erstellt. Wenn Sie über das Werkzeug eine Datenbank in PostgreSQL erstellen, wird die Datenbank template1 als Vorlage für die Datenbank verwendet. Verwenden Sie Kleinbuchstaben für den Datenbanknamen. Das Werkzeug führt eine Konvertierung in Kleinbuchstaben auch dann durch, wenn die Eingabe in Großbuchstaben erfolgt. | String |
account_authentication (optional) | Geben Sie an, welcher Authentifizierungstyp für die Datenbankverbindung verwendet werden soll.
| Boolean |
database_admin (optional) | Geben Sie einen Datenbankadministrator-Benutzer an, wenn Sie die Datenbankauthentifizierung verwenden. Verwenden Sie für Oracle den sys-Benutzer. Geben Sie für PostgreSQL einen Benutzer mit Administratorstatus an. Geben Sie für SQL Server ein Mitglied der festgelegten Serverrolle "sysadmin" an. | String |
database_admin_password (optional) | Wenn Sie die Datenbankauthentifizierung verwenden, geben Sie das Kennwort des Datenbankadministrators ein. | Encrypted String |
sde_schema (optional) | Dieser Parameter ist nur für SQL Server relevant. Er gibt an, ob die Geodatabase im Schema eines Benutzers mit dem Namen sde oder im DBO-Schema der Datenbank erstellt werden soll. Wenn Sie eine DBO-Schema-Geodatabase erstellen, stellen Sie die Verbindung als Benutzer "dbo" in der SQL Server-Instanz her.
| Boolean |
gdb_admin_name (optional) | Wenn Sie PostgreSQL verwenden, muss dieser Wert sde lauten. Wenn die Anmelderolle sde nicht vorhanden ist, wird sie über dieses Werkzeug erstellt und der Rolle wird der Superuser-Status im Datenbank-Cluster zugewiesen. Wenn die Anmelderolle sde bereits vorhanden ist, wird ihr über dieses Werkzeug der Superuser-Status zugewiesen (sofern noch nicht erfolgt). Das Werkzeug erstellt außerdem ein SDE-Schema in der Datenbank und gewährt der Öffentlichkeit Zugriff auf das neue Schema. Wenn Sie Oracle verwenden, ist der Standardwert sde. Wenn Sie in einer vorhandenen Master-SDE-Geodatabase eine Benutzerschema-Geodatabase erstellen möchten, müssen Sie den Namen des Benutzers angeben, der die neue Geodatabase besitzt. Wenn sde oder der andere Benutzer nicht in DBMS vorhanden ist, erstellt das Werkzeug Enterprise-Geodatabase erstellen den Benutzer und weist ihm die zum Erstellen und Aktualisieren einer Geodatabase sowie zum Beenden von DBMS-Benutzerverbindungen erforderlichen Berechtigungen zu. Wenn dieses Werkzeug in einer Oracle 12c-Datenbank ausgeführt wird, gewährt das Werkzeug auch Berechtigungen zum Ausführen von Datenimporten mit Oracle Data Pump. Wenn der angegebene Benutzer bereits vorhanden ist, weist ihm das Werkzeug dieselben Berechtigungen zu. Wenn Sie SQL Server verwenden und eine SDE-Schema-Geodatabase angegeben haben, muss dieser Wert sde lauten. Das Werkzeug erstellt eine sde-Anmeldung, einen Datenbankbenutzer sowie ein Schema und erteilt Berechtigungen zum Erstellen einer Geodatabase und Beenden von Verbindungen mit einer SQL Server-Instanz. Wenn Sie ein DBO-Schema angegeben haben, geben Sie keinen Wert für diesen Parameter an. | String |
gdb_admin_password (optional) | Geben Sie das Kennwort für den Geodatabase-Administratorbenutzer an. Wenn der Geodatabase-Administratorbenutzer bereits im DBMS vorhanden ist, muss das eingegebene Kennwort mit dem vorhandenen Kennwort übereinstimmen. Ist der Geodatabase-Administratorbenutzer noch nicht vorhanden, geben Sie ein gültiges Datenbankkennwort für den neuen Benutzer ein. Das Kennwort muss den Kennwortrichtlinien des DBMS entsprechen. Das Kennwort ist eine verschlüsselte Zeichenfolge. | Encrypted String |
tablespace_name (optional) | Dieser Parameter ist nur gültig für DBMS vom Typ Oracle und PostgreSQL. Führen Sie für Oracle einen der folgenden Vorgänge aus:
Dieses Werkzeug erstellt keinen Tablespace in PostgreSQL. Sie müssen den Namen eines vorhandenen Tablespace angeben, der als Standard-Tablespace der Datenbank verwendet wird, oder diesen Parameter leer lassen. Wenn Sie diesen Parameter leer lassen, erstellt das Werkzeug eine Datenbank im Tablespace "pg_default". | String |
authorization_file | Geben Sie den Pfad und Dateinamen der Schlüsselcodedatei ein, die beim Autorisieren von ArcGIS Server erstellt wurde. Diese Datei befindet sich unter Windows im Verzeichnis \\Program Files\ESRI\License<release#>\sysgen bzw. unter Linux im Verzeichnis /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen. Autorisieren Sie ggf. ArcGIS Server, um diese Datei zu erstellen. Wahrscheinlich müssen Sie die Schlüsselcode-Datei vom ArcGIS-Server-Computer an einen Ort kopieren, auf den das Werkzeug zugreifen kann. | File |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_result |
Codebeispiel
CreateGeodatabase ‑ Beispiel 1
Das folgende Skript erstellt eine Geodatabase in einer Oracle-Datenbank. Es erstellt einen SDE-Benutzer und den Standard-Tablespace "sdetbs" für den SDE-Benutzer. Die Schlüsselcodedatei befindet sich auf einem Linux-Remote-Server.
#Import arcpy module
import arcpy
arcpy.CreateEnterpriseGeodatabase_management("ORACLE", "ora11g:1521/elf", "", "DATABASE_AUTH", "sys", "manager", "", "sde", "supersecret", "sdetbs",
"//myserver/mymounteddrive/myaccessibledirectory/keycodes")
CreateGeodatabase ‑ Beispiel 2
Dieses Skript stellt eine Verbindung mit einer SQL Server-Instanz (tor\ssinstance) her, um die Datenbank "sp_data" und darin eine SDE-Schema-Geodatabase zu erstellen. Die Verbindung wird unter Verwendung der Betriebssystemauthentifizierung hergestellt. Die Schlüsselcodedatei befindet sich auf einem Windows-Remote-Server.
#Import arcpy module
import arcpy
arcpy.CreateEnterpriseGeodatabase_management("SQL_SERVER", "tor\ssinstance1", "sp_data", "OPERATING_SYSTEM_AUTH", "", "", "SDE_SCHEMA", "sde", "sde",
"", "//myserver/myaccessibledirectory/keycodes")
CreateGeodatabase ‑ Beispiel 3
Dieses Skript stellt eine Verbindung mit einem PostgreSQL-Datenbank-Cluster auf dem Server "feldspar" her. In dem vorhandenen Tablespace "gdbspace" werden ein SDE-Benutzer und die Datenbank "pggdb" erstellt. Die Schlüsselcodedatei befindet sich auf einem lokalen Linux-Server.
#Import arcpy module import arcpy
arcpy.CreateEnterpriseGeodatabase_management("POSTGRESQL", "feldspar", "pggdb", "DATABASE_AUTH", "postgres", "averturis", "", "sde", "nomira", "gdbspace",
"//arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License/sysgen/keycodes")
CreateGeodatabase – Beispiel 4 (eigenständiges Skript)
Mit dem folgenden eigenständigen Python-Skript können Sie spezifische Informationen für Ihre Site über Optionen angeben.
"""
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 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 Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS 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)
Umgebungen
Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.
Lizenzinformationen
- ArcGIS Desktop Basic: Nein
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja