Mit der Standard- oder Advanced-Lizenz verfügbar.
Die Art der Einrichtung einer Geodatabase hängt von der Situation vor Ort ab. Befolgen Sie die Anweisungen für die Szenarien, die auf Ihre Organisation zutreffen.
- Sie sind der Datenbank- und Geodatabase-Administrator.
- Der Oracle-Administrator konfiguriert die Datenbank, der Geodatabase-Administrator erstellt die Geodatabase.
- Sie möchten mehrere Geodatabases in derselben Oracle-Datenbank speichern.
Sie sind der Datenbank- und Geodatabase-Administrator
Wenn Sie sowohl Datenbank-Administrator als auch Geodatabase-Administrator sind und deshalb das Kennwort für beide Anmeldenamen kennen, können Sie mit dem Geoverarbeitungswerkzeug oder Python-Skript Enterprise-Geodatabase erstellen eine Datenbank in Oracle erstellen.
Mit dem Werkzeug Enterprise-Geodatabase erstellen ist die Einrichtung einer Geodatabase völlig unkompliziert, da damit der Benutzer "sde", das Schema und der Tablespace erstellt und die erforderlichen Berechtigungen für den Benutzer "sde" gewährt werden. Dazu verwendet das Werkzeug die folgenden Standardeinstellungen:
- Erstellen eines Datenbankbenutzers mit dem Namen "sde"
- Erstellen eines 400-MB-Tablespace im Oracle-Standardverzeichnis und Festlegen desselben als Tablespace des Benutzers "sde"
- SDE-Benutzern werden Berechtigungen zum Erstellen und Aktualisieren einer Geodatabase, zum Entfernen von Datenbankverbindungen und zum Importieren von Daten mit Oracle Data Pump (nur Oracle 12c) zugewiesen
- Gewähren der zum Erstellen einer Geodatabase erforderlichen Paketberechtigungen
- Erstellen einer Geodatabase
Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter Berechtigungen für Geodatabases in Oracle.
Bevor Sie das Werkzeug oder Skript zum Erstellen einer Geodatabase ausführen, müssen Sie Oracle einrichten.
Einrichten von Oracle
Bevor Sie eine Geodatabase erstellen, muss Oracle installiert und konfiguriert werden. Die spezifische Konfiguration der Oracle-Instanz hängt von den individuellen Anforderungen Ihrer Organisation ab. Informationen zur Installation und Konfiguration finden Sie in der Oracle-Dokumentation.
Überprüfen Sie die ArcGIS-Systemanforderungen, bevor Sie eine Geodatabase einrichten, um sicherzustellen, dass die Oracle-, ArcGIS- und Hardwarekombinationen, die Sie verwenden möchten, unterstützt werden.
Wenn Sie SQL verwenden, um mit ST_Geometry-Funktionen von Esri auf räumliche Daten zuzugreifen, oder wenn Sie den ST_Raster-Typ verwenden, konfigurieren Sie Oracle extproc für den Zugriff auf die ST_Geometry-Shape-Bibliothek von Esri bzw. die ST_Raster-Bibliothek.
Installieren Sie nach der Installation und Konfiguration von Oracle die ArcGIS- und Oracle-Clients.
Konfigurieren eines ArcGIS-Clients
Sie können ein Python-Skript über ArcGIS for Desktop (Standard oder Advanced), ArcGIS Engine Runtime Geodatabase Update oder ArcGIS for Server ausführen, um eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen anstelle eines Skripts ausführen möchten, verwenden Sie ArcGIS for Desktop.
In den meisten Fällen wird der ArcGIS-Client auf einem anderen Computer als Oracle installiert. Deshalb benötigen Sie einen unterstützten Oracle-Client auf dem ArcGIS-Client-Computer, um eine Verbindung mit der Oracle-Instanz herzustellen. Informationen zum Bestimmen der empfohlenen Oracle-Client-Version für die Herstellung einer Verbindung zu der von Ihnen verwendeten Oracle-Version und Anweisungen zum Installieren und Konfigurieren des Clients finden Sie in der Oracle-Dokumentation.
- Installieren Sie den ArcGIS-Client, den Sie für die Erstellung der Geodatabase verwenden möchten.
Befolgen Sie die Anleitungen, die in den Installationsanweisungen der Software bereitgestellt werden.
- Installieren und konfigurieren Sie einen Oracle-Client auf dem ArcGIS-Client-Computer.
Wenn Sie eine Verbindung von einem 32-Bit-ArcGIS-Client herstellen, müssen Sie einen 32-Bit-Oracle-Client installieren. Das gilt auch, wenn Sie die ArcGIS-Client-Anwendung auf einem Computer mit einem 64-Bit-Betriebssystem installieren und sowohl die Datenbank als auch der Server ein 64-Bit-Betriebssystem verwenden. Wenn Sie eine Verbindung von einem 64-Bit-ArcGIS-Client herstellen, müssen Sie einen 64-Bit-Oracle-Client installieren.
Sie können den Instant, Runtime oder Administrator Client bei Oracle anfordern. Anweisungen zum Installieren finden Sie in der Oracle-Dokumentation.
- Legen Sie die Umgebungsvariable des Betriebssystems oder Benutzerprofils so fest, dass sie den Pfad und den Namen des Verzeichnisses enthält, in dem der Oracle-Client installiert ist.
- Legen Sie unter Linux die Umgebungsvariable LD_LIBRARY_PATH fest.
Sie können den Instant, Runtime oder Administrator Client bei Oracle anfordern. Anweisungen zum Installieren finden Sie in der Oracle-Dokumentation.
- Legen Sie unter Windows die Umgebungsvariable PATH fest. Wenn ArcGIS for Server und ArcGIS for Desktopauf dem gleichen Windows-Computer installiert sind, legen Sie die PATH-Variable so fest, dass der 64-Bit-Client vor dem 32-Bit-Client gelesen wird. Beispiel: Wenn der 32-Bit-Oracle-Client unter c:\Program Files (x86)\Oracle und der 64-Bit-Oracle Instant Client unter c:\Program Files\Oracle, installiert ist, müssen Sie dem PATH-Variablenwert Folgendes voranstellen: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- Legen Sie unter Linux die Umgebungsvariable LD_LIBRARY_PATH fest.
- Wenn der ArcGIS-Client bereits ausgeführt wurde, starten Sie ihn neu, damit der Oracle-Client und die neuen Umgebungsvariablen erkannt werden.
- Sie können von ArcGIS über eine Easy Connect-Verbindungszeichenfolge eine Verbindung mit Oracle herstellen. Sie müssen jedoch die Oracle-Datenbank konfigurieren, um Easy Connect-Zeichenfolgen zuzulassen. Wenn der Oracle-Client vollständig installiert ist, Sie jedoch die Easy Connect-Syntax zum Herstellen der Verbindung verwenden möchten, müssen Sie sicherstellen, dass die Datei "sqlnet.ora" auf dem Client so konfiguriert ist, dass die Verwendung von Easy Connect zulässig ist, und dass der Oracle-Server so konfiguriert ist, dass die Easy Connect-Syntax zulässig ist. Genauere Anweisungen hierzu finden Sie in der Oracle-Dokumentation.
Jetzt können Sie eine Geodatabase erstellen.
Erstellen einer Geodatabase
Sie können das Werkzeug Enterprise-Geodatabase erstellen von ArcGIS for Desktop (Standard oder Advanced) oder ein Python-Skript von einem ArcGIS for Desktop-, ArcGIS for Server- oder ArcGIS Engine-Client ausführen, um einen SDE-Benutzer, ein Schema, einen Tablespace und eine Geodatabase zu erstellen.
Ausführen des Werkzeugs "Enterprise-Geodatabase erstellen"
Wenn Sie Zugriff auf ArcGIS for Desktop haben, können Sie ein Geoverarbeitungswerkzeug ausführen, um die Geodatabase zu erstellen.
- Starten Sie ArcMap oder ArcCatalog.
- Öffnen Sie das Werkzeug Enterprise-Geodatabase erstellen.
Sie können dieses Werkzeug suchen oder zu diesem Werkzeug navigieren, das sich im Toolset "Geodatabase-Verwaltung" der Toolbox "Data Management" befindet.
- Wählen Sie aus der Dropdown-Liste Datenbankplattform den Eintrag Oracle aus.
- Stellen Sie die Informationen bereit, die erforderlich sind, um eine Verbindung mit der Oracle-Instanz herzustellen.
- Wenn Sie den Oracle-Client bereits für die Verwendung eines TNS-Netzwerk-Alias konfiguriert haben, geben Sie den Netzwerk-Alias in das Textfeld Instanz ein.
- Wenn Sie keinen Netzwerk-Alias für den Oracle-Client konfiguriert haben und in der Oracle-Datenbank und im Oracle-Client die Verwendung von Easy Connect-Zeichenfolgen konfiguriert ist, geben Sie im Textfeld Instanz die Oracle Easy Connect-Zeichenfolge an.
Eine Liste der möglichen Easy Connect-Zeichenfolgen finden Sie unter Herstellen einer Verbindung mit Oracle von ArcGIS.
- Geben Sie das Kennwort für den sys-Benutzer in das Textfeld Datenbankadministratorkennwort ein.
- Geben Sie sde im Textfeld Geodatabase-Administrator ein.
Wenn der Benutzer "sde" noch nicht in der Datenbank vorhanden ist, erstellt das Werkzeug ihn und weist ihm die zum Erstellen einer Geodatabase erforderlichen Berechtigungen zu. Wenn der Benutzer bereits in der Datenbank vorhanden ist, werden ihm die erforderlichen Berechtigungen gewährt.
- Geben Sie ein Kennwort für den Benutzer "sde" in das Textfeld Geodatabase-Administratorkennwort ein.
Wenn der Benutzer "sde" bereits in der Datenbank vorhanden ist, müssen Sie das richtige Kennwort für den vorhandenen Benutzer eingeben. Das Kennwort kann nicht mit diesem Werkzeug geändert werden. Wenn Sie einen SDE-Benutzer erstellen, wird das eingegebene Kennwort zum Erstellen des SDE-Benutzers verwendet.
- Geben Sie einen Tablespace für den Benutzer "sde" an.
- Wenn Sie über einen vorkonfigurierten Tablespace verfügen, der für das Geodatabase-Repository verwendet werden soll, geben Sie seinen Namen in das Textfeld Tablespace-Name ein.
- Wenn ein Tablespace vom Werkzeug erstellt werden soll, geben Sie einen gültigen Namen in das Textfeld Tablespace-Name ein, damit das Werkzeug einen Tablespace von 400 MB im Oracle-Standardverzeichnis erstellt. Wenn Sie keinen Tablespace-Namen eingeben, wird der Tablespace "SDE_TBS" erstellt und als standardmäßiger Tablespace für den SDE-Benutzer festgelegt.
- Um eine Autorisierungsdatei anzugeben, wechseln Sie zu der Schlüsselcodedatei, die bei der Autorisierung von ArcGIS for Server erstellt wurde, und wählen Sie diese aus.
Diese Datei wird auf Windows-Servern im Ordner \\Program Files\ESRI\License<release#>\sysgen gespeichert. Autorisieren Sie ArcGIS for Server jetzt, um diese Datei zu erstellen, sofern Sie dies nicht bereits getan haben.
- Klicken Sie auf OK, um das Werkzeug auszuführen.
Es wird eine Geodatabase in Ihrer Oracle-Datenbank erstellt.
Zum Erstellen der Geodatabase wird eine Protokolldatei (GDBCreateGeodatabase<#>.log) in das Verzeichnis geschrieben, das für die Variable "%TEMP%" auf dem Computer angegeben wurde, auf dem das Werkzeug ausgeführt wird. Falls Sie Probleme beim Ausführen des Werkzeugs haben, überprüfen Sie diese Protokolldatei, um das Problem zu beheben.
Als Nächstes können Sie einen Benutzer erstellen, der Daten in die Geodatabase laden kann.
Ausführen eines Python-Skripts
Sie können das hier verfügbare Skript kopieren, speichern und ausführen, um eine Geodatabase von ArcGIS for Desktop (Standard oder Advanced), ArcGIS for Server (Standard oder Advanced) oder ArcGIS Runtime (mit der Erweiterung "Geodatabase Update") zu erstellen.
-
Erstellen Sie eine Textdatei auf einem ArcGIS-Client-Computer, und kopieren Sie das folgende Skript in die Datei.
""" 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)
- Speichern Sie die Datei mit der Erweiterung .py.
- Führen Sie das Skript aus, indem Sie für Ihre Site spezifische Optionen und Informationen bereitstellen.
In der folgenden Beispielausführung von einem Linux-Computer wird die Datei "create_gdb.py" für eine Oracle-Instanz mit der SID "orcl" ausgeführt. Die Instanz wird auf dem Server "gisprod" ausgeführt. Es werden ein Benutzer mit dem Namen "sde" und Kennwort "Tgdbst@rtsh3r3" und ein Tablespace mit dem Namen "sde" erstellt. Im Standardverzeichnis des ArcGIS-Servers wird eine Schlüsselcodedatei angegeben, um die Geodatabase zu autorisieren.
./create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.3/sysgen/keycodes
In diesem Beispiel wird dasselbe Skript auf einem Windows-Computer ausgeführt:
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Sie verfügen nun über eine Geodatabase in Oracle.
Zum Erstellen der Geodatabase wird eine Protokolldatei (GDBCreateGeodatabase<#>.log) in das Verzeichnis geschrieben, das für die TEMP- oder TMP-Variable auf dem Computer angegeben wurde, auf dem das Skript ausgeführt wird.
Wenn Clients mit SQL auf die Geodatabase zugreifen, konfigurieren Sie Oracle extproc, um den Zugriff zu gewähren.
Als Nächstes können Sie einen Benutzer erstellen, der Daten in die Geodatabase laden kann.
Der Oracle-Administrator konfiguriert die Datenbank, der Geodatabase-Administrator erstellt die Geodatabase
Wenn die Person, die die Geodatabase erstellt, über keinen Zugriff auf das Kennwort des Datenbankadministrators verfügt, kann der Datenbankadministrator die Datenbank und den Benutzer "sde" einrichten. Danach kann der Geodatabase-Administrator über den Anmeldenamen "sde" eine Verbindung mit der Datenbank herstellen und mit dem Geoverarbeitungswerkzeug oder Python-Skript Enterprise-Geodatabase aktivieren eine Geodatabase in der Datenbank erstellen.
Das Werkzeug Enterprise-Geodatabase aktivieren verwendet eine Datenbankverbindungsdatei als Eingabe und erstellt die Geodatabase-Systemtabellen, -sichten, -funktionen und -prozeduren im Schema des Benutzers "sde".
Einrichten von Oracle
Bevor der Geodatabase-Administrator eine Geodatabase erstellen kann, muss der Datenbank-Administrator folgende Aktionen ausführen:
- Eine Oracle-Instanz installieren und konfigurieren. Die spezifische Konfiguration der Oracle-Instanz hängt von den individuellen Anforderungen Ihrer Organisation ab. Informationen zur Installation und Konfiguration finden Sie in der Oracle-Dokumentation.
Überprüfen Sie die ArcGIS-Systemanforderungen, bevor Sie eine Geodatabase einrichten, um sicherzustellen, dass die gewünschten Datenbankmanagementsystem-, ArcGIS- und Hardwarekombinationen unterstützt werden. Eine Liste der erforderlichen Berechtigungen finden Sie unter Berechtigungen für Geodatabases in Oracle.
- den Benutzer "sde" mit Schema erstellen
- dem Benutzer "sde" die erforderlichen Berechtigungen zum Erstellen einer Geodatabase zuweisen
- einen Tablespace für den Benutzer "sde" erstellen und als Standard-Tablespace des Benutzers "sde" festlegen
- Ausführungsberechtigungen für die zur Geodatabase-Erstellung erforderlichen Pakete gewähren. Eine Liste der Pakete finden Sie unter Berechtigungen für Geodatabases in Oracle.
Zudem konfigurieren Sie Oracle extproc für den Zugriff auf die ST_Geometry-Shape-Bibliothek von Esri bzw. die ST_Raster-Bibliothek, wenn Sie SQL verwenden, um mit ST_Geometry-Funktionen von Esri auf räumliche Daten zuzugreifen, oder wenn Sie den ST_Raster-Typ verwenden.
Nach der Installation und Konfiguration von Oracle kann der Geodatabase-Administrator die ArcGIS- und Oracle-Clients installieren.
Konfigurieren eines ArcGIS-Clients
Sie können ein Python-Skript über ArcGIS for Desktop (Standard oder Advanced), ArcGIS Engine Runtime mit der Erweiterung "Geodatabase Update" oder ArcGIS for Server (Standard oder Advanced) ausführen, um eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen anstelle eines Skripts ausführen möchten, verwenden Sie ArcGIS for Desktop.
In den meisten Fällen wird der ArcGIS-Client auf einem anderen Computer als Oracle installiert. Deshalb benötigen Sie einen unterstützten Oracle-Client auf dem ArcGIS-Client-Computer, um eine Verbindung mit der Oracle-Instanz herzustellen. Informationen zum Bestimmen der empfohlenen Oracle-Client-Version für die Herstellung einer Verbindung zu der von Ihnen verwendeten Oracle-Version und Anweisungen zum Installieren und Konfigurieren des Clients finden Sie in der Oracle-Dokumentation.
- Installieren Sie den ArcGIS-Client, den Sie für die Erstellung der Geodatabase verwenden möchten.
Befolgen Sie die Anleitungen, die in den Installationsanweisungen der Software bereitgestellt werden.
- Installieren und konfigurieren Sie einen Oracle-Client auf dem ArcGIS-Client-Computer.
Wenn Sie eine Verbindung von einem 32-Bit-ArcGIS-Client herstellen, müssen Sie einen 32-Bit-Oracle-Client installieren. Das gilt auch, wenn Sie die ArcGIS-Client-Anwendung auf einem Computer mit einem 64-Bit-Betriebssystem installieren und sowohl die Datenbank als auch der Server ein 64-Bit-Betriebssystem verwenden. Wenn Sie eine Verbindung von einem 64-Bit-ArcGIS-Client herstellen, müssen Sie einen 64-Bit-Oracle-Client installieren.
Sie können den Instant, Runtime oder Administrator Client bei Oracle anfordern. Anweisungen zum Installieren finden Sie in der Oracle-Dokumentation.
- Legen Sie die Umgebungsvariable des Betriebssystems oder Benutzerprofils so fest, dass sie den Pfad und den Namen des Verzeichnisses enthält, in dem der Oracle-Client installiert ist.
- Legen Sie unter Linux die Umgebungsvariable LD_LIBRARY_PATH fest.
- Legen Sie unter Windows die Umgebungsvariable PATH fest. Wenn ArcGIS for Server und ArcGIS for Desktopauf dem gleichen Windows-Computer installiert sind, legen Sie die PATH-Variable so fest, dass der 64-Bit-Client vor dem 32-Bit-Client gelesen wird. Beispiel: Wenn der 32-Bit-Oracle-Client unter c:\Program Files (x86)\Oracle und der 64-Bit-Oracle Instant Client unter c:\Program Files\Oracle, installiert ist, müssen Sie dem PATH-Variablenwert Folgendes voranstellen: C:\Program Files\Oracle;C:\Program Files (x86)\Oracle;.
- Wenn der ArcGIS-Client bereits ausgeführt wurde, starten Sie ihn neu, damit der Oracle-Client und die neuen Umgebungsvariablen erkannt werden.
- Sie können von ArcGIS über eine Easy Connect-Verbindungszeichenfolge eine Verbindung mit Oracle herstellen. Der Datenbank-Administrator muss jedoch die Oracle-Datenbank konfigurieren, um Easy Connect-Zeichenfolgen zuzulassen. Wenn der Oracle-Client vollständig installiert ist, Sie jedoch die Easy Connect-Syntax zum Herstellen der Verbindung verwenden möchten, müssen Sie sicherstellen, dass die Datei "sqlnet.ora" auf dem Client so konfiguriert ist, dass die Verwendung von Easy Connect zulässig ist und der Datenbankadministrator den Oracle-Server so konfiguriert hat, dass die Easy Connect-Syntax zulässig ist. Genauere Anweisungen hierzu finden Sie in der Oracle-Dokumentation.
Jetzt können Sie eine Geodatabase erstellen.
Erstellen einer Geodatabase
Der Geodatabase-Administrator kann das Werkzeug Enterprise-Geodatabase aktivieren von ArcGIS for Desktop (Standard oder Advanced) oder ein Python-Skript von einem ArcGIS for Desktop-, ArcGIS for Server- oder ArcGIS Engine-Client ausführen, um eine Geodatabase in der vorhandenen Datenbank zu erstellen.
Ausführen des Werkzeugs "Enterprise-Geodatabase aktivieren"
Wenn Sie Zugriff auf ArcGIS for Desktop haben, können Sie das Werkzeug Enterprise-Geodatabase aktivieren ausführen, um eine Geodatabase zu erstellen.
- Starten Sie ArcMap oder ArcCatalog.
- Stellen Sie vom Kataloginhaltsverzeichnis als Benutzer "sde" eine Verbindung mit der Oracle-Datenbank her.
Vergessen Sie nicht, das Kennwort des Benutzers im Dialogfeld Datenbankverbindung zu speichern.
- Klicken Sie mit der rechten Maustaste auf die Datenbankverbindung und wählen Sie Geodatabase aktivieren.
Das Werkzeug Enterprise-Geodatabase aktivieren wird geöffnet, und im Textfeld Eingabe-Datenbankverbindung wird der Name und Speicherort der Verbindungsdatei eingefügt.
- Navigieren Sie zu der Autorisierungsdatei, die bei der Autorisierung von ArcGIS for Server erstellt wurde, und fügen Sie sie dem Textfeld Autorisierungsdatei hinzu.
Wenn Sie zum Autorisieren von ArcGIS for Server den Assistenten verwenden, wird eine Schlüsselcodedatei auf dem Server erzeugt, auf dem die Software installiert ist. Wenn Sie ArcGIS for Server auf einem Linux-Computer autorisiert haben, wurde die Schlüsselcode-Datei im Verzeichnis /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen erstellt. Wenn Sie die Autorisierung auf einem Windows-Server ausgeführt haben, wurde die Datei im Verzeichnis Program Files\ESRI\License<release>\sysgen erstellt. Autorisieren Sie ggf. ArcGIS for Server, um diese Datei zu erstellen.
- Klicken Sie auf OK, um das Werkzeug auszuführen.
Es wird eine Geodatabase in der Datenbank erstellt.
Das Werkzeug erstellt die Protokolldatei "GDBCreateGeodatabase<#>.log" in dem für die Variable "%TEMP%" angegebenen Verzeichnis auf dem Computer, auf dem das Werkzeug ausgeführt wird. Falls Sie Probleme beim Ausführen des Werkzeugs haben, überprüfen Sie diese Protokolldatei, um das Problem zu beheben.
Wenn Clients mit SQL auf die Geodatabase zugreifen, konfigurieren Sie Oracle extproc, um den Zugriff zu gewähren.
Als Nächstes können Sie einen Benutzer erstellen, der Daten in die Geodatabase laden kann.
Ausführen eines Python-Skripts
Wenn Sie die Geodatabase durch das Ausführen eines Skripts von einer ArcGIS for Server-, ArcGIS for Desktop- oder ArcGIS Engine-Installation auf einem Windows-Computer erstellen möchten, können Sie das hier verfügbare Skript dazu verwenden.
- Erstellen Sie eine Textdatei auf einem ArcGIS-Client-Computer, und kopieren Sie das folgende Skript in die Datei.
""" 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)
- Speichern Sie die Datei mit der Erweiterung .py.
- Führen Sie das Skript aus, indem Sie für Ihre Site spezifische Optionen und Informationen bereitstellen.
In der folgenden Beispielausführung von einem Linux-Computer wird die Datei "enable_gdb.py" für eine Oracle-Instanz mit der SID "orcl" ausgeführt. Die Instanz wird auf dem Server "gisprod" ausgeführt. Im Standardverzeichnis des ArcGIS-Servers wird eine Schlüsselcodedatei angegeben, um die Geodatabase zu autorisieren.
enable_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.3/sysgen/keycodes
In diesem Beispiel wird dasselbe Skript auf einem Windows-Computer ausgeführt:
create_gdb.py --DBMS ORACLE -i gisprod/orcl --auth DATABASE_AUTH -U sys -P N0pe3king! -u sde -p Tgdbst@rtsh3r3 -t sde -l \\Program Files\ESRI\License10.3\sysgen\keycodes
Sie verfügen nun über eine Geodatabase in der Oracle-Datenbank.
Zum Erstellen der Geodatabase wird eine Protokolldatei (GDBCreateGeodatabase<#>.log) in das Verzeichnis geschrieben, das für die TEMP- oder TMP-Variable auf dem Computer angegeben wurde, auf dem das Skript ausgeführt wird.
Wenn Clients mit SQL auf die Geodatabase zugreifen, konfigurieren Sie Oracle extproc, um den Zugriff zu gewähren.
Als Nächstes können Sie einen Benutzer erstellen, der Daten in die Geodatabase laden kann.
Sie möchten mehrere Geodatabases in derselben Oracle-Datenbank speichern
Nachdem mit den in den vorherigen Abschnitten beschriebenen Verfahren im Schema des Benutzers "sde" eine Geodatabase erstellt wurde (auch als Master-SDE-Geodatabase bezeichnet), können andere Benutzer eine Geodatabase in ihren Schemas erstellen. Sie können zulassen, dass andere Benutzer eigene Geodatabases erstellen, um Daten für verschiedene Teams oder Projekte zu gruppieren und zu trennen.
Für Geodatabases in Benutzerschemas gelten folgende Regeln:
- Der Benutzer, der die Geodatabase erstellt hat, ist zugleich ihr Besitzer. Dieser Benutzer ist der Geodatabase-Administrator für diese Geodatabase und benötigt die gleichen Geodatabase-Administratorberechtigungen. Eine Liste der spezifischen Geodatabase-Administratorberechtigungen finden Sie unter Berechtigungen für Geodatabases in Oracle.
- Ein Benutzer kann nur eine Geodatabase besitzen.
- Nur der Besitzer der Geodatabase mit Benutzerschema kann Daten in dieser Geodatabase besitzen.
- Wenn ein Benutzer eine Geodatabase besitzt, kann er keine Daten in der Master-SDE-Geodatabase besitzen.
- Wenn ein Benutzer Daten in der Master-SDE-Geodatabase besitzt, kann er keine Geodatabase mit Benutzerschema besitzen.
- Der Zeitaufwand für die Herstellung der Verbindung zur Oracle-Datenbank nimmt mit zunehmender Anzahl der erstellten und verwendeten Benutzerschema-Geodatabases zu. Dies gilt insbesondere dann, wenn Benutzerschema-Geodatabases eine Mischung aus Geodatabase-Tabellen und Tabellen, die nicht bei der Geodatabase registriert sind, enthalten.
Nach der Erstellung der Master-SDE-Geodatabase können Sie mit einem der obengenannten Werkzeuge oder Skripte eine Benutzerschema-Geodatabase erstellen.
- Enterprise-Geodatabase erstellen: Wie bereits zuvor in diesem Thema erwähnt, muss der Benutzer, der das Werkzeug Enterprise-Geodatabase erstellen ausführt, das Kennwort des sys-Benutzers kennen. Deshalb muss dieses Werkzeug vom Datenbank-Administrator ausgeführt werden. Stellen Sie sicher, dass der Name des Schemabesitzers für den Geodatabase-Administrator angegeben ist.
- Enterprise-Geodatabase aktivieren: Wenn Sie keinen Zugang zum Kennwort des sys-Benutzers haben, kann der Datenbank-Administrator Ihnen die erforderlichen Berechtigungen zum Erstellen einer Geodatabase erteilen. Danach können Sie mit Ihren Anmeldedaten eine Verbindung mit der Geodatabase herstellen und das Werkzeug oder Skript Enterprise-Geodatabase aktivieren ausführen, um eine Geodatabase in Ihrem Schema zu erstellen.