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. Lesen Sie zuerst die Voraussetzungen, folgen Sie dann den für Ihre Situation relevanten Anweisungen.
Voraussetzungen
Um eine Geodatabase in Oracle zu erstellen, müssen Sie wie folgt vorgehen:
- Prüfen Sie, ob die gewünschten ArcGIS-, Oracle- und Betriebssystemkombinationen kompatibel sind.
- Rufen Sie den Oracle-Client ab, 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-Keycode-Datei ab, und 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. Dies hat Einfluss darauf, wer die Datenbank erstellt. Legen Sie zudem fest, mit welchem Werkzeug Sie die Geodatabase erstellen möchten. Befolgen Sie die Anweisungen, die für Ihre Situation gelten:
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 oder Python-Skript Enterprise-Geodatabase erstellen eine Geodatabase 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"
- 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 (gilt nicht für Oracle 11g)
- 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.
Installieren und Konfigurieren 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 für Oracle, bevor Sie eine Geodatabase einrichten, 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-Bibliotheken von Esri zuzugreifen:
- Ausführen der SQL-Funktionen für "ST_Geometry" über SQL-Clients
- Abfragen der XML-Spalten in den Geodatabase-Systemsichten "GDB_ITEMS_VW" und "GDB_ITEMRELATIONSHIPS_VW"
- Definieren eines Abfrage-Layers in ArcMap oder ArcGIS Pro, der SQL-Funktionen in "ST_Geometry"-Spalten ausführt
- Veröffentlichen eines Web-Service, der auf Daten in der Oracle-Datenbank verweist
Installieren Sie nach der Installation und Konfiguration von Oracle die ArcGIS- und Oracle-Clients.
Installieren und Konfigurieren von Clients
Sie können ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Engine Geodatabase Update oder ArcGIS Server (Enterprise Edition) installieren und ein Skript ausführen, um eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen anstelle eines Skripts ausführen möchten, installieren Sie ArcGIS 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 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, 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 (wie ArcMap) 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 (z. B. ArcGIS Server oder ArcGIS Pro) herstellen, müssen Sie einen 64-Bit-Oracle-Client installieren.
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.
Sie können den Oracle Instant, Runtime oder Administrator Client bei Oracle anfordern. Anweisungen zum Installieren finden Sie in der Oracle-Dokumentation.
- Legen Sie unter Microsoft Windows die Umgebungsvariable PATH fest. Wenn ArcMap auf dem gleichen Windows-Computer installiert ist wie ArcGIS Pro oder ArcGIS Server, 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 Desktop (Desktop Standard oder Desktop Advanced) oder ein Python-Skript von einem ArcGIS Desktop-, ArcGIS 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 Desktop haben, können Sie ein Geoverarbeitungswerkzeug ausführen, um die Geodatabase zu erstellen.
Führen Sie die folgenden Schritte aus, um eine Geodatabase mithilfe des Werkzeugs Enterprise-Geodatabase erstellen in ArcMap zu erstellen.
- Starten Sie einen ArcGIS Desktop-Client.
- Ö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 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 Server erstellt wurde, und wählen Sie diese aus.
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. Autorisieren Sie ArcGIS Server jetzt, um diese Datei zu erstellen, sofern Sie dies nicht bereits getan haben.
- Klicken Sie auf OK (ArcMap oder ArcCatalog) oder auf Ausführen (ArcGIS Pro).
Es wird eine Geodatabase in Ihrer 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 lauten, führen Sie die gespeicherte Prozedur sde.gdb_util.update_open_cursors durch, um den Parameter der Oracle-Datenbank mit der Einstellung der Geodatabase zu synchronisieren.
Ausführen eines Python-Skripts
Sie können das hier verfügbare Skript kopieren, speichern und ausführen, um eine Geodatabase über ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Server 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=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS: SQL_SERVER, 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 ==""): 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)
- 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'
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 lauten, führen Sie die gespeicherte Prozedur sde.gdb_util.update_open_cursors durch, 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, ü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".
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, 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.
Wenn Sie eine der folgenden Funktionen benötigen, müssen Sie auch Oracle extproc konfigurieren, um auf die ST-Bibliotheken von Esri zuzugreifen:
- Ausführen der SQL-Funktionen für "ST_Geometry" über SQL-Clients
- Abfragen der XML-Spalten in den Geodatabase-Systemsichten "GDB_ITEMS_VW" und "GDB_ITEMRELATIONSHIPS_VW"
- Definieren eines Abfrage-Layers in ArcMap oder ArcGIS Pro, der SQL-Funktionen in "ST_Geometry"-Spalten ausführt
- Veröffentlichen eines Web-Service, der auf Daten in der Oracle-Datenbank verweist
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 Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Engine Geodatabase Update oder ArcGIS Server installieren, um ein Skript auszuführen und eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase erstellen anstelle eines Skripts ausführen möchten, installieren Sie ArcGIS 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 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, 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 (wie ArcMap) 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 (z. B. ArcGIS Server oder ArcGIS Pro) herstellen, müssen Sie einen 64-Bit-Oracle-Client installieren.
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 ArcMap auf dem gleichen Windows-Computer installiert ist wie ArcGIS Pro oder ArcGIS Server, 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 Datenbankadministrator 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 Desktop (Desktop Standard oder Desktop Advanced) oder ein Python-Skript von einem ArcGIS Desktop-, ArcGIS Server- oder ArcGIS Engine-Client ausführen, um eine Geodatabase in der vorhandenen Datenbank zu erstellen.
Ausführen des ArcGIS Desktop-Werkzeugs Enterprise-Geodatabase aktivieren
Wenn Sie über den entsprechenden Zugriff verfügen, können Sie das Werkzeug Enterprise-Geodatabase aktivieren ausführen, um eine Geodatabase zu erstellen.
Führen Sie die folgenden Schritte aus, um eine Geodatabase mithilfe des Werkzeugs Enterprise-Geodatabase aktivieren in ArcGIS Desktop zu erstellen:
- Starten Sie einen ArcGIS Desktop-Client.
- Stellen Sie als SDE-Benutzer eine Verbindung mit der Oracle-Datenbank her.
Vergessen Sie nicht, das Kennwort des Benutzers im Dialogfeld Datenbankverbindung zu speichern.
- Ö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.
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. Autorisieren Sie ggf. ArcGIS Server, um diese Datei zu erstellen. Kopieren Sie die Schlüsselcodedatei an einen Speicherort, auf den das Werkzeug zugreifen kann.
- Klicken Sie auf OK (ArcMap oder ArcCatalog) oder auf Ausführen (ArcGIS Pro).
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 sde.gdb_util.update_open_cursors die Einstellungen für "open_cursor" zwischen Oracle und der Geodatabase synchronisieren.
Ausführen eines Python-Skripts
Wenn Sie die Geodatabase durch das Ausführen eines Skripts von einer ArcGIS Server-, ArcGIS Desktop- oder ArcGIS Engine-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'
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 sde.gdb_util.update_open_cursors die Einstellungen für "open_cursor" zwischen Oracle und der Geodatabase synchronisieren.