Mit der Standard- oder Advanced-Lizenz verfügbar.
Installieren und konfigurieren Sie IBM DB2 und einen ArcGIS-Client, und verwenden Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder ein Python-Skript zum Erstellen einer Geodatabase in einer DB2-Datenbank.
In diesem Abschnitt wird beschrieben, wie eine Geodatabase in DB2 auf Servern unter Linux, UNIX oder Windows erstellt wird. Weitere Anweisungen zum Erstellen einer Geodatabase in DB2 unter dem z-Betriebssystem (z/OS) finden Sie unter Erstellen einer Geodatabase in DB2 unter z/OS.
Installieren und konfigurieren von DB2
Bevor Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder das Skript zum Erstellen einer Geodatabase in DB2 ausführen, müssen Sie zuerst das DB2-Datenbankmanagementsystem installieren und konfigurieren. Überprüfen Sie die ArcGIS-Systemanforderungen für DB2, bevor Sie eine Geodatabase einrichten, um sicherzustellen, dass die Datenbank-, ArcGIS- und Hardwarekombinationen unterstützt werden.
Befolgen Sie zum Installieren und Konfigurieren der DB2-Instanz die von IBM bereitgestellten Anweisungen. Führen Sie dann die folgenden Schritte aus, um eine Datenbank zu konfigurieren, und melden Sie sich an, um Ihre Geodatabase zu verwenden.
-
Erstellen Sie auf dem DB2-Server den Anmeldenamen "sde" für das Betriebssystem.
Sie stellen eine Verbindung mit der Datenbank mit der SDE-Anmeldung her, um eine Geodatabase zu erstellen.
- Erstellen Sie eine DB2-Datenbank, und registrieren Sie bei dem Modul "Spatial Extender".
- Gewähren Sie dem SDE-Benutzer die Berechtigung "DBADM" in der Datenbank.
Richten Sie als Nächstes einen ArcGIS-Client ein, über den Sie eine Verbindung herstellen und eine Geodatabase in der DB2-Datenbank erstellen.
Konfigurieren von Clients
Sie können ein Python-Skript aus ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Engine Geodatabase Update oder ArcGIS Server (Enterprise Edition) ausführen, um eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren anstelle eines Skripts ausführen möchten, verwenden Sie ArcGIS Desktop.
- 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.
- In den meisten Fällen wird der ArcGIS-Client auf einem anderen Computer als dem DB2-Server installiert. Installieren und konfigurieren Sie einen DB2-Client daher auf dem ArcGIS-Client-Computer.
Der IBM Data Server Runtime Client für DB2 kann von My Esri heruntergeladen werden, oder Sie können Ihre eigene Installation des DB2-Clients verwenden. Anweisungen zum Installieren finden Sie in der Dokumentation zu DB2. Wenn Sie den DB2-Client unter einem 64-Bit-Betriebssystem installieren, führen Sie die ausführbare 64-Bit-Datei aus. Dabei werden sowohl die 32- als auch die 64-Dateien installiert, wodurch Verbindungen mit 32- und 64-Bit-Clients hergestellt werden können.
- Sie können eine Verbindung von ArcGIS mit einer DB2-Datenbank herstellen, indem Sie eine DSNless-Verbindungszeichenfolge verwenden. Wenn Sie die Verbindung stattdessen mit einem Datenquellennamen herstellen möchten, müssen Sie die Datenbank katalogisieren, wodurch der Datenquellenname konfiguriert wird. Weitere Anweisungen zum Erstellen eines Datenquellennamens finden Sie in der IBM DB2-Dokumentation.
Jetzt können Sie eine Geodatabase erstellen.
Erstellen einer Geodatabase
Verwenden Sie eine der folgenden Methoden, um eine Geodatabase in der DB2-Datenbank zu erstellen:
Verwenden Sie das Werkzeug Enterprise-Geodatabase aktivieren.
Wenn Sie ArcGIS Desktop installiert und für die Verbindung mit Ihrer DB2-Datenbank konfiguriert haben, können Sie das Werkzeug Enterprise-Geodatabase aktivieren ausführen.
Führen Sie die folgenden Schritte aus, um eine File-Geodatabase in ArcMap zu erstellen:
- Starten Sie ArcMap oder ArcCatalog.
-
Stellen Sie eine Verbindung mit der DB2-Datenbank her. Stellen Sie die Verbindung mit dem SDE-Anmeldung her.
Vergessen Sie nicht, das Kennwort des SDE-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.
- Geben Sie im Feld Eingabe-Datenbankverbindung die Datenbankverbindungsdatei für die DB2-Datenbank an.
- Navigieren Sie zu der ArcGIS Server-Schlüsselcodedatei, 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 Computer erzeugt, auf dem die Software installiert ist. Wenn Sie ArcGIS Server in einem Linux-System autorisiert haben, wurde die 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 diese Datei an einen Speicherort, auf den Sie mit dem Werkzeug Enterprise-Geodatabase aktivieren zugreifen können. Autorisieren Sie ggf. ArcGIS Server, um diese Datei zu erstellen.
- Klicken Sie auf OK, um das Werkzeug auszuführen.
Meldungen im Zusammenhang mit der 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 Datei, um das Problem zu beheben.
Es wird eine Geodatabase in Ihrer DB2-Datenbank erstellt.
Als Nächstes erstellen Sie Benutzer, um Daten in die Geodatabase zu laden. Weitere Anweisungen zum Erstellen von Benutzern finden Sie im IBM DB2 Information Center.
Verwenden eines Python-Skripts
Sie können ein Python-Skript über einen Client-Computer von ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Server (Enterprise Edition) oder ArcGIS Engine Geodatabase Update ausführen, um eine Geodatabase in einer DB2-Datenbank zu erstellen.
Führen Sie die folgenden Schritte aus, um ein Python-Skript zum Erstellen einer Geodatabase in einer DB2-Datenbank auszuführen:
- 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=['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 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 Windows-Computer wird die Datei enable_gdb.py für die Datenbank "spdata" auf der Instanz "db2prod" ausgeführt. Die Verbindung wird als SDE-Anmeldung mit dem Kennwort "Tgdbst@rtsh3r3" hergestellt. Im Standardverzeichnis von ArcGIS Server wird eine Schlüsselcodedatei angegeben, um die Geodatabase zu autorisieren.
enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.5\sysgen\keycodes
Dies ist ein Beispiel für die Ausführung des Skripts auf einem Linux-Computer:
/enable_gdb.py --DBMS DB2 -i db2prod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l /usr/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.5/sysgen/keycodes
Meldungen im Zusammenhang mit der 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 Python-Skript ausgeführt wird. Falls Sie Probleme beim Erstellen einer Geodatabase haben, überprüfen Sie diese Datei, um das Problem zu beheben.
Es wird eine Geodatabase in Ihrer DB2-Datenbank erstellt.
Als Nächstes erstellen Sie Benutzer, um Daten in die Geodatabase zu laden. Weitere Anweisungen zum Erstellen von Benutzern und Gewähren von Berechtigungen zum Laden von Daten finden Sie im IBM DB2 Information Center.