Mit der Standard- oder Advanced-Lizenz verfügbar.
Installieren und konfigurieren Sie IBM DB2, und verwenden Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder ein Python-Skript, um Geodatabases in einer DB2-Datenbank zu erstellen.
In diesem Abschnitt wird beschrieben, wie eine Geodatabase in DB2 auf Servern unter Linux, UNIX oder Windows erstellt wird. Weitere Anweisungen zum Einrichten einer Geodatabase in DB2 unter dem z-Betriebssystem (z/OS) finden Sie unter Einrichten einer Geodatabase in DB2 unter z/OS.
Einrichten 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 von ArcGIS for Server im Resource Center, 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 eines ArcGIS-Clients
Sie können ein Python-Skript über ArcGIS for Desktop (Standard oder Advanced), ArcGIS Engine Runtime Geodatabase Update oder über ArcGIS for Server (Standard oder Advanced) ausführen, um eine Geodatabase zu erstellen. Wenn Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren anstelle eines Skripts ausführen möchten, verwenden Sie ArcGIS for 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 auf einem 64-Bit-Betriebssystem installieren, führen Sie die ausführbare Datei für 64-Bit aus, wobei sowohl die 32- als auch die 64-Bit-Dateien installiert werden.
- 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 for Desktop installiert und für die Verbindung mit Ihrer DB2-Datenbank konfiguriert haben, können Sie das Werkzeug Enterprise-Geodatabase ausführen.
- Starten Sie ArcMap oder ArcCatalog.
-
Stellen Sie im Kataloginhaltsverzeichnis 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.
- Fügen Sie dem Textfeld Eingabe-Database die Datenbankverbindungsdatei für die DB2-Datenbank hinzu.
- Navigieren Sie zu der ArcGIS for Server-Schlüsselcodedatei, 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 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. Autorisieren Sie ArcGIS for Server, um diese Datei zu erstellen, sofern Sie dies nicht bereits getan haben.
- Klicken Sie auf OK, um das Werkzeug auszuführen.
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.
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 for Desktop (Standard oder Advanced), ArcGIS for Server (Standard oder Advanced) oder ArcGIS Engine (mit der Erweiterung "Geodatabase-Aktualisierung") 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 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 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 des ArcGIS-Servers 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.3\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.3/sysgen/keycodes
Zum Erstellen der Geodatabase (GDBCreateGeodatabase<#>.log) wird eine Protokolldatei in das Verzeichnis geschrieben, das für die TEMP- oder TMP-Variable auf dem Computer angegeben wurde, auf dem das Skript ausgeführt wird.
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.