Mit der Standard- oder Advanced-Lizenz verfügbar.
Verwenden Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder ein Python-Skript, um Geodatabases in einer IBM Informix-Datenbank zu erstellen.
In den folgenden Abschnitten wird die Vorgehensweise beschrieben:
- Einrichten von Informix zum Speichern einer Geodatabase.
- Konfigurieren eines ArcGIS-Clients zum Herstellen einer Verbindung mit Informix.
- Erstellen einer Geodatabase in einer Informix-Datenbank.
Einrichten von Informix
Bevor Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder das Skript zum Erstellen einer Geodatabase in Informix ausführen, müssen Sie zuerst das Informix-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 Informix-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 Informix-Server Anmeldeinformationen für das Betriebssystem mit dem Namen "sde"
.
Sie stellen eine Verbindung mit der Datenbank mit der SDE-Anmeldung her, um eine Geodatabase zu erstellen.
- Nehmen Sie folgende Änderungen an der ONCONFIG-Datei von Informix vor:
- Heben Sie die Auskommentierung des Parameters "VPCLASS jvp,num=1" auf.
Dadurch kann die Funktion "sde.retrieve_guid()" in der Geodatabase erstellt werden, die für die Replikation, Offline-Verwendung von Karten und in SQL bearbeiteten Tabellen mit globaler ID- und GUID-Spalte erforderlich ist. Diese Einstellung wird auch für nicht versionierte Archivierungs-Workflows benötigt.
- Legen Sie den Parameter "USEOSTIME" auf "1" fest, um Subsekunden-Genauigkeit für Zeitwerte zu verwenden.
Die Einstellung dieses Parameters ermöglicht die Implementierung von Bearbeitungs-Workflows, die die Bearbeitung nicht versionierter Daten erfordern, wenn keine Netzverbindung besteht.
- Starten Sie Informix neu, um die Änderungen zu implementieren, die Sie an der ONCONFIG-Datei vorgenommen haben.
- Heben Sie die Auskommentierung des Parameters "VPCLASS jvp,num=1" auf.
- Erstellen Sie in der Informix-Instanz eine Datenbank und konfigurieren Sie die Speicherplätze.
Die Informix-Datenbank, die Sie für die Geodatabase verwenden, muss folgende Voraussetzungen erfüllen:
- Mindestens 100 MB freien Speicher zum Speichern von Geodatabase-Systemobjekten
- Protokollierung bzw. gepufferte Protokollierung ist für die Datenbank aktiviert
ArcGIS legt Transaktionen fest und es können erst Daten eingefügt werden, wenn die Datenbank als "logged" oder "buffered logged" erstellt wurde. Sie können dies beim Erstellen der Datenbank über "dbaccess" oder mit dem Befehl "ontape" festlegen.
ontape -s -B <database name>
- Aktivierte Protokollierung für Smart Large Object Spaces
Auch alle für räumliche Daten verwendeten Smart Large Object Spaces (sbspaces) müssen protokolliert werden. Beim Erstellen von Smart Large Objects ist die Protokollierung standardmäßig nicht aktiviert. Um jedoch sicherzustellen, dass die Transaktionsprotokollierung für Rollbacks und den Schutz aller räumlichen Daten aktiviert ist, müssen Sie die Protokollierung für alle Smart BLOB aktivieren. Führen Sie den folgenden Befehl als Informix-Benutzer aus, um die Protokollierung für einen Smart Large Object sbspace zu aktivieren:
onspaces -ch SBLOBspace -DF LOGGING=ON
- Weisen Sie dem SDE-Anmeldenamen die EXTEND-Rolle und RESOURCE-Berechtigungen in der Datenbank zu.
Richten Sie als Nächstes einen ArcGIS-Client ein, über den Sie eine Verbindung herstellen und eine Geodatabase in der Informix-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 Informix-Server installiert. Installieren und konfigurieren Sie einen Informix-Client daher auf dem ArcGIS-Client-Computer.
Der Informix Connect (IConnect)-Client kann von My Esri heruntergeladen werden. Anweisungen zum Installieren des Clients finden Sie in der Informix-Dokumentation. Wenn Sie den Informix-Client so installieren, dass er mit einem 32-Bit-ArcGIS-Client ausgeführt wird, installieren Sie die 32-Bit-Version des Informix IConnect-Clients. Wenn Sie den Informix-Client so installieren, dass er mit ArcGIS for Server ausgeführt wird, installieren Sie den 64-Bit-IConnect-Client.
- Wenn Ihr ArcGIS-Client auf einem Windows-Computer installiert ist, registrieren Sie den Informix-Server via SetNet32.
- Sie können eine Verbindung von ArcGIS mit einer Informix-Datenbank herstellen, indem Sie eine DSNless-Verbindungszeichenfolge verwenden. Wenn Sie die Verbindung stattdessen mit einem ODBC-Datenquellennamen herstellen möchten, müssen Sie den Datenquellenname konfigurieren. Weitere Anweisungen finden Sie unter Einrichten einer ODBC-Datenquelle für Informix.
Jetzt können Sie eine Geodatabase erstellen.
Erstellen einer Geodatabase
Verwenden Sie eine der folgenden Methoden, um eine Geodatabase in der Informix-Datenbank zu erstellen:
Verwenden Sie das Werkzeug Enterprise-Geodatabase aktivieren.
Wenn Sie ArcGIS for Desktop installiert und für die Verbindung mit Ihrer Informix-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 Informix-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 Informix-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 Informix-Datenbank erstellt.
Als Nächstes erstellen Sie Benutzer, um Daten in die Geodatabase zu laden. Weitere Anweisungen zum Erstellen von Benutzern finden Sie in der Dokumentation zum IBM Informix 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 Informix-Datenbank zu erstellen.
Führen Sie die folgenden Schritte aus, um ein Python-Skript zum Erstellen einer Geodatabase in einer Informix-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 "idsprod" 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 INFORMIX -i idsprod --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 INFORMIX -i idsprod --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 Informix-Datenbank erstellt.
Als Nächstes erstellen Sie Benutzer, um Daten in die Geodatabase zu laden. Weitere Anweisungen zum Erstellen von Benutzern finden Sie in der Dokumentation zum IBM Informix Information Center.