Mit der Standard- oder Advanced-Lizenz verfügbar.
Um eine Geodatabase in einer Oracle-Datenbank zu erstellen, führen Sie auf einem ArcGIS-Client ein Geoverarbeitungswerkzeug oder ein Python-Skript aus.
Wenn Sie eine Enterprise-Geodatabase mit ArcGIS Pro 3.4 erstellen, lautet die Geodatabase-Version 11.4.0x.
Lesen Sie zuerst die Voraussetzungen, und folgen Sie den für Ihre Situation relevanten Anweisungen.
Hinweis:
Das Erstellen von Benutzerschema-Geodatabases oder deren Upgrade wird nicht mehr in Oracle unterstützt.
Voraussetzungen
Um eine Geodatabase in Oracle zu erstellen, gehen Sie wie folgt vor:
- Prüfen Sie, ob die gewünschten ArcGIS-, Oracle- und Betriebssystemkombinationen kompatibel sind.
- Laden Sie den Oracle-Client herunter, der zum Herstellen einer Verbindung mit der Version von Oracle erforderlich ist, die Sie zum Speichern der Geodatabase verwenden möchten.
- Rufen Sie eine ArcGIS Server-Keycodes-Datei ab, welche beim Autorisieren von ArcGIS Server erstellt wird. Legen Sie sie an einem Speicherort ab, auf den Sie über den ArcGIS-Client zugreifen können, den Sie zum Erstellen der Geodatabase verwenden möchten.
- Bestimmen Sie, wer die Geodatabase erstellen soll, da dies Einfluss darauf hat, mit welchem Werkzeug die Geodatabase erstellt wird. Befolgen Sie die Anweisungen, die für Ihre Situation gelten:
Sie sind der Datenbank- und Geodatabase-Administrator
Wenn Sie sowohl Datenbankadministrator als auch Geodatabase-Administrator sind und deshalb das Kennwort für beide Anmeldenamen kennen, können Sie mit dem Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen oder einem Python-Skript, mit dem dieses Werkzeug aufgerufen wird, eine Geodatabase in Oracle erstellen.
Mit dem Werkzeug Enterprise-Geodatabase erstellen werden der SDE-Benutzer, das Schema und der Tablespace erstellt. Zudem werden dem SDE-Benutzer die Berechtigungen, die zum Erstellen der Geodatabase erforderlich sind, gewährt. 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"
- Gewähren von Berechtigungen zum Erstellen und Aktualisieren einer Geodatabase, zum Entfernen von Datenbankverbindungen und zum Importieren von Daten mit Oracle Data Pump für SDE-Benutzer
- 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.
Hinweis:
Mit diesem Workflow können Sie keine Geodatabase in einem Datenbank-Service erstellen.
Bevor Sie das Werkzeug oder Skript zum Erstellen einer Geodatabase ausführen, müssen Sie Oracle einrichten.
Installieren und Konfigurieren von Oracle
Bevor Sie eine Geodatabase erstellen, muss Oracle installiert und konfiguriert werden. Wie Sie (oder die IT-Abteilung) bei der Konfiguration der Oracle-Instanz vorgehen, 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 für Oracle, bevor Sie eine Geodatabase erstellen, um sicherzustellen, dass die Oracle-, ArcGIS- und Hardwarekombinationen, die Sie verwenden möchten, unterstützt werden.
Wenn Sie eine der folgenden Funktionen benötigen, müssen Sie auch Oracle extproc konfigurieren, um auf die ST_Geometry-Bibliotheken von Esri zuzugreifen:
- Ausführen der SQL-Funktionen für "ST_Geometry" über SQL-Clients
- Definieren eines Abfrage-Layers, der SQL-Funktionen in "ST_Geometry"-Spalten ausführt
- Abfragen von Feature-Layern mit Abschnitten in ArcGIS Pro
- Veröffentlichen eines Web-Layers, der auf Daten in der Oracle-Datenbank verweist
- Führen Sie das Geoverarbeitungswerkzeug Layer lagebezogen auswählen mit der Option Überschneiden (DBMS) aus.
Installieren Sie nach der Installation und Konfiguration von Oracle die ArcGIS- und Oracle-Clients.
Installieren und Konfigurieren von Clients
Sie können ArcGIS Pro (Desktop Standard oder Desktop Advanced) oder ArcGIS Server (Enterprise Edition) installieren und ein Skript ausführen, um eine Geodatabase zu erstellen. Um das Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen anstelle eines Skripts auszuführen, installieren Sie ArcGIS Pro.
Hinweis:
Sie benötigen eine ArcGIS Server-Schlüsselcodedatei (Enterprise), um Ihre Geodatabase im nächsten Abschnitt zu autorisieren. Auch wenn Sie zum Erstellen der Geodatabase kein Python-Skript von einem ArcGIS Server-Computer ausführen, müssen Sie ArcGIS Server installieren und autorisieren, um die Schlüsselcodedatei abzurufen. Möglicherweise müssen Sie die Schlüsselcodedatei vom ArcGIS Server-Computer an einen Speicherort kopieren, auf den das Geoverarbeitungswerkzeug oder Python-Skript zugreifen kann.
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 erforderlichen Oracle-Client-Version für die Herstellung einer Verbindung mit der von Ihnen verwendeten Oracle-Version sowie Anweisungen zum Installieren und Konfigurieren des Oracle-Clients finden Sie in der Oracle-Dokumentation.
- Installieren Sie den ArcGIS-Client, mit dem Sie die Geodatabase erstellen.
Befolgen Sie die Anleitungen, die in den Installationsanweisungen der Software bereitgestellt werden.
- Installieren und konfigurieren Sie einen Oracle-Client auf dem ArcGIS-Client-Computer.
Sie können den Oracle 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 Microsoft Windows die Umgebungsvariable PATH fest.
- Wenn der ArcGIS-Client bereits ausgeführt wurde, starten Sie ihn neu, damit der Oracle-Client und die neuen Umgebungsvariablen erkannt werden.
- In ArcGIS haben Sie die Möglichkeit, über eine Easy Connect-Verbindungszeichenfolge eine Verbindung mit Oracle herzustellen. Sie müssen jedoch die Oracle-Datenbank so konfigurieren, dass Easy Connect-Zeichenfolgen zulässig sind.
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 aus ArcGIS Pro (Desktop Standard oder Desktop Advanced) oder ein Python-Skript aus ArcGIS Pro oder einem ArcGIS Server-Computer ausführen, um einen SDE-Benutzer, ein Schema, einen Tablespace und eine Geodatabase zu erstellen.
Ausführen des Werkzeugs Enterprise-Geodatabase erstellen
Sie können die Geodatabase in ArcGIS Pro durch Ausführung eines Geoverarbeitungswerkzeugs erstellen.
Führen Sie die folgenden Schritte aus, um eine Geodatabase mithilfe des Werkzeugs Enterprise-Geodatabase erstellen zu erstellen.
- Starten Sie ArcGIS Pro.
- Öffnen Sie das Werkzeug Enterprise-Geodatabase erstellen.
Sie können dieses Werkzeug suchen oder zu diesem Werkzeug navigieren, das sich in der Toolbox "Data Management" im Toolset "Geodatabase-Verwaltung" 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 SDE-Benutzer nicht in der Datenbank vorhanden ist, erstellt das Werkzeug ihn und weist ihm die zum Erstellen einer Geodatabase erforderlichen Berechtigungen zu. Wenn der Benutzer 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.
- Zum Erstellen eines Tablespace geben Sie einen gültigen Namen in das Textfeld Tablespace-Name ein, sodass 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 Server erstellt wurde, und wählen Sie diese aus.
Autorisieren Sie jetzt ArcGIS Server, um die Keycodes-Datei zu erstellen, sofern Sie dies nicht bereits getan haben. Diese Datei befindet sich auf Windows-Servern im Ordner \\Program Files\ESRI\License<release#>\sysgen und auf Linux-Servern im Ordner /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen. Kopieren Sie die Schlüsselcodedatei an einen Speicherort, auf den das Werkzeug zugreifen kann.
- Klicken Sie auf Ausführen.
Es wird eine Geodatabase in der Oracle-Datenbank erstellt.
Meldungen zur Geodatabase-Erstellung werden in der Datei sde_setup.log gespeichert, die in dem Verzeichnis erstellt wurde, das für die Variable "%TEMP%" auf dem Computer angegeben wurde, auf dem das Werkzeug ausgeführt wird. Falls Sie Probleme beim Erstellen einer Geodatabase haben, überprüfen Sie diese Protokolldatei, um das Problem zu beheben.
Sollte jetzt der Parameter "open_cursors" der Oracle-Datenbank auf einen anderen Wert als 300 festgelegt sein, führen Sie die gespeicherte Prozedur sde.gdb_util.update_open_cursors aus, um den Parameter der Oracle-Datenbank mit der Einstellung der Geodatabase zu synchronisieren.
Ausführen eines Python-Skripts
Sie können das hier angegebene Skript kopieren, speichern und ausführen, um eine Geodatabase über einen ArcGIS Pro (Desktop Standard oder Desktop Advanced) oder ArcGIS Server-Computer 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 Author: Esri """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for 10.1 and higher releases") #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS: SQLSERVER, ORACLE, or POSTGRESQL.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user") parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password") parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema Type for SQL Server geodatabase, SDE or DBO. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") parser.add_option ("--type", dest="Spatial_type", type="choice", choices=['ST_GEOMETRY', 'POSTGIS'], default="ST_GEOMETRY", help="Spatial Type for PostgreSQL geodatabase, ST_GEOMETRY or POSTGIS. Default=ST_GEOMETRY") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print("%s: error: %s\n" % (sys.argv[0], "No command options given")) parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance database = options.Database.lower() account_authentication = options.Account_authentication.upper() dbms_admin = options.Dbms_admin dbms_admin_pwd = options.Dbms_admin_pwd schema_type = options.Schema_type.upper() gdb_admin = options.Gdb_admin gdb_admin_pwd = options.Gdb_admin_pwd tablespace = options.Tablespace license = options.Authorization_file spatial_type = options.Spatial_type.upper() if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" if( database_type ==""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.")) parser.print_help() sys.exit(3) if (license == ""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) if(database_type == "SQL_SERVER"): if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"): print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE.")) sys.exit(3) if (schema_type == "DBO_SCHEMA" and gdb_admin != ""): print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema...")) if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication")) sys.exit(3) if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""): print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication...")) else: if (schema_type == "DBO_SCHEMA"): print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema..." )) if( gdb_admin.lower() == ""): print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified.")) sys.exit(3) if( dbms_admin == ""): print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!")) sys.exit(3) if (account_authentication == "OPERATING_SYSTEM_AUTH"): print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." )) # Get the current product license product_license=arcpy.ProductInfo() # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase requires an ArcGIS for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for Server license.") sys.exit("Re-authorize ArcGIS before creating enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to create...") arcpy.AddMessage("+++++++++") try: print("Creating enterprise geodatabase...\n") arcpy.management.CreateEnterpriseGeodatabase(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license, spatial_type=spatial_type) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print("\n") parser.print_help() parser.exit(2)
- 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 von ArcGIS Server 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/License/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\License\sysgen\keycodes'
Tipp:
Type -h or --help at the command prompt to get syntax help.
Sie verfügen nun über eine Geodatabase in Oracle.
Meldungen zur Geodatabase-Erstellung werden in der Datei sde_setup.log gespeichert, die in dem Verzeichnis erstellt wurde, das für die Variable "TEMP" oder "TMP" auf dem Computer angegeben wurde, auf dem das Werkzeug ausgeführt wird. Falls Sie Probleme beim Erstellen einer Geodatabase haben, überprüfen Sie diese Protokolldatei, um das Problem zu beheben.
Sollte jetzt der Parameter "open_cursors" der Oracle-Datenbank auf einen anderen Wert als 300 festgelegt sein, führen Sie die gespeicherte Prozedur sde.gdb_util.update_open_cursors aus, um den Parameter der Oracle-Datenbank mit der Einstellung der Geodatabase zu synchronisieren.
Der Oracle-Administrator konfiguriert die Datenbank, der Geodatabase-Administrator erstellt die Geodatabase.
Wenn die Person, die die Geodatabase erstellt, keinen Zugriff auf das Kennwort des Datenbankadministrators hat, kann der Datenbankadministrator die Datenbank und den SDE-Benutzer einrichten. Danach kann der Geodatabase-Administrator über die SDE-Anmeldung eine Verbindung mit der Datenbank herstellen und mit dem Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder einem Python-Skript 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".
Installieren und Konfigurieren 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, um sicherzustellen, dass die gewünschten Kombinationen aus Datenbankmanagementsystem, ArcGIS und Hardware unterstützt werden.
- den Benutzer "sde" mit Schema erstellen
- dem Benutzer "sde" die erforderlichen Berechtigungen zum Erstellen einer Geodatabase zuweisen Eine Liste der erforderlichen Berechtigungen finden Sie unter Berechtigungen für Geodatabases in Oracle.
- einen Tablespace für den Benutzer "sde" erstellen und als Standard-Tablespace des Benutzers "sde" festlegen
- execute-Berechtigungen für die zur Geodatabase-Erstellung erforderlichen Pakete gewähren. Eine Liste der Pakete finden Sie unter Berechtigungen für Geodatabases in Oracle.
Wenn Sie eine der folgenden Funktionen benötigen, müssen Sie auch Oracle extproc konfigurieren, um auf die ST_Geometry-Bibliotheken von Esri zuzugreifen:
- Ausführen der SQL-Funktionen für "ST_Geometry" über SQL-Clients
- Definieren eines Abfrage-Layers, der SQL-Funktionen in "ST_Geometry"-Spalten ausführt
- Abfragen von Feature-Layern mit Abschnitten in ArcGIS Pro
- Veröffentlichen eines Web-Layers, der auf Daten in der Oracle-Datenbank verweist
- Führen Sie das Geoverarbeitungswerkzeug Layer lagebezogen auswählen mit der Option Überschneiden (DBMS) aus.
Nach der Installation und Konfiguration von Oracle kann der Geodatabase-Administrator die ArcGIS- und Oracle-Clients installieren.
Installieren und Konfigurieren von Clients
Sie können ArcGIS Pro (Desktop Standard oder Desktop Advanced) oder ArcGIS Server installieren, um ein Python-Skript auszuführen und eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren anstelle eines Skripts ausführen möchten, installieren Sie ArcGIS Pro.
Hinweis:
Sie benötigen eine ArcGIS Server-Schlüsselcodedatei (Enterprise), um Ihre Geodatabase im nächsten Abschnitt zu autorisieren. Auch wenn Sie zum Erstellen der Geodatabase kein Python-Skript von einem ArcGIS Server-Computer ausführen, müssen Sie ArcGIS Server installieren und autorisieren, um die Schlüsselcodedatei abzurufen. Möglicherweise müssen Sie die Schlüsselcodedatei vom ArcGIS Server-Computer an einen Speicherort kopieren, auf den das Geoverarbeitungswerkzeug oder Python-Skript zugreifen kann.
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 mit 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, mit dem Sie die Geodatabase erstellen.
Befolgen Sie die Anleitungen, die in den Installationsanweisungen der Software bereitgestellt werden.
- Installieren und konfigurieren Sie einen Oracle-Client auf dem ArcGIS-Client-Computer.
Sie können den Oracle 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 der ArcGIS-Client bereits ausgeführt wurde, starten Sie ihn neu, damit der Oracle-Client und die neuen Umgebungsvariablen erkannt werden.
Jetzt können Sie eine Geodatabase erstellen.
Erstellen einer Geodatabase
Der Geodatabase-Administrator kann das Werkzeug Enterprise-Geodatabase aktivieren von ArcGIS Pro (Desktop Standard oder Desktop Advanced) oder ein Python-Skript von einem ArcGIS Pro-Computer (Desktop Standard oder Desktop Advanced) bzw. einem ArcGIS Server-Computer ausführen, um eine Geodatabase in der vorhandenen Datenbank zu erstellen.
Ausführen des Werkzeugs Enterprise-Geodatabase aktivieren ArcGIS Desktop
Führen Sie das Geoverarbeitungswerkzeug über ArcGIS Pro aus, um eine Geodatabase zu erstellen.
Führen Sie die folgenden Schritte aus, um eine Geodatabase mithilfe des Geoverarbeitungswerkzeugs Enterprise-Geodatabase aktivieren zu erstellen:
- Starten Sie ArcGIS Pro.
- Stellen Sie als SDE-Benutzer eine Verbindung mit der Oracle-Datenbank her.
Speichern Sie das Kennwort des Benutzers im Dialogfeld Datenbankverbindung.
- Öffnen Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren.
- Verwenden Sie die in Schritt 2 erstellte Datenbankverbindung als Eingabe-Datenbankverbindung.
- Navigieren Sie zu der Autorisierungsdatei, die bei der Autorisierung von ArcGIS Server erstellt wurde, und geben Sie sie im Feld Autorisierungsdatei an.
Autorisieren Sie ggf. ArcGIS Server, um diese Datei zu erstellen. Wenn Sie zum Autorisieren von ArcGIS Server den Assistenten verwenden, wird eine Schlüsselcodedatei auf dem Server erzeugt, auf dem die Software installiert ist. Wenn Sie ArcGIS 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. Kopieren Sie die Schlüsselcodedatei an einen Speicherort, auf den das Werkzeug zugreifen kann.
- Klicken Sie auf Ausführen.
Es wird eine Geodatabase in der Datenbank erstellt.
Meldungen zur Geodatabase-Erstellung werden in der Datei sde_setup.log gespeichert, die in dem Verzeichnis erstellt wurde, das für die Variable "%TEMP%" auf dem Computer angegeben wurde, auf dem das Werkzeug ausgeführt wird. Falls Sie Probleme beim Erstellen einer Geodatabase 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.
Anschließend kann der Datenbankadministrator mithilfe der gespeicherten Prozedur Oracle die Einstellungen für "open_cursors" zwischen sde.gdb_util.update_open_cursors und der Geodatabase synchronisieren.
Ausführen eines Python-Skripts
Wenn Sie die Geodatabase durch das Ausführen eines Skripts von einer ArcGIS Server- oder ArcGIS Pro-Installation 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 """ # Import system modules import arcpy, os, optparse, sys # Define usage and version parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name") parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Default=DATABASE_AUTH") parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name") parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password") parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # Check if value entered for option try: (options, args) = parser.parse_args() #Check if no system arguments (options) entered if len(sys.argv) == 1: print("%s: error: %s\n" % (sys.argv[0], "No command options given")) parser.print_help() sys.exit(3) #Usage parameters for spatial database connection database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.")) parser.print_help() sys.exit(3) if (license == ""): print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print(" \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.")) parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print("\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.") sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.") else: print("\n" + product_license + " license available! Continuing to enable...") arcpy.AddMessage("+++++++++") # Local variables instance_temp = instance.replace("\\","_") instance_temp = instance_temp.replace("/","_") instance_temp = instance_temp.replace(":","_") Conn_File_NameT = instance_temp + "_" + database + "_" + username if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = Conn_File_NameT + ".sde" Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde" # Check for the .sde file and delete it if present arcpy.env.overwriteOutput=True if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) print("\nCreating Database Connection File...\n") # Process: Create Database Connection File... # Usage: out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true) arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE") for i in range(arcpy.GetMessageCount()): if "000565" in arcpy.GetMessage(i): #Check if database connection was successful arcpy.AddReturnMessage(i) arcpy.AddMessage("\n+++++++++") arcpy.AddMessage("Exiting!!") arcpy.AddMessage("+++++++++\n") sys.exit(3) else: arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") # Process: Enable geodatabase... try: print("Enabling Enterprise Geodatabase...\n") arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license) for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) arcpy.AddMessage("+++++++++\n") except: for i in range(arcpy.GetMessageCount()): arcpy.AddReturnMessage(i) if os.path.exists(Connection_File_Name_full_path): os.remove(Connection_File_Name_full_path) #Check if no value entered for option except SystemExit as e: if e.code == 2: parser.usage = "" print("\n") parser.print_help() parser.exit(2)
- 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 von ArcGIS Server 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/License/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\License\sysgen\keycodes'
Tipp:
Type -h or --help at the command prompt to get syntax help.
Sie verfügen nun über eine Geodatabase in der Oracle-Datenbank.
Meldungen zur Geodatabase-Erstellung werden in der Datei sde_setup.log gespeichert, die in dem Verzeichnis erstellt wurde, das für die Variable "TEMP" oder "TMP" auf dem Computer angegeben wurde, auf dem das Skript ausgeführt wird. Falls Sie Probleme beim Erstellen einer Geodatabase haben, überprüfen Sie diese Protokolldatei, um das Problem zu beheben.
Anschließend kann der Datenbankadministrator mithilfe der gespeicherten Prozedur Oracle die Einstellungen für "open_cursors" zwischen sde.gdb_util.update_open_cursors und der Geodatabase synchronisieren.