Mit der Standard- oder Advanced-Lizenz verfügbar.
Verwenden Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder ein Python-Skript, um eine Geodatabase in einer IBM Informix-Datenbank zu erstellen. Das Verfahren hierfür wird im den nachfolgenden Abschnitten beschrieben.
Voraussetzungen
Bevor Sie eine Geodatabase in Informix erstellen, müssen Sie wie folgt vorgehen:
- Prüfen Sie, ob die gewünschten ArcGIS-Softwareversionen und die Informix-Versionen kompatibel sind.
- Laden Sie den Informix-Client herunter, der zum Herstellen einer Verbindung mit der Version von Informix 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.
- Installieren und konfigurieren Sie Informix.
Installieren und Konfigurieren von Informix
Bevor Sie das Geoverarbeitungswerkzeug Enterprise-Geodatabase aktivieren oder das Skript zum Erstellen einer Geodatabase in Informix ausführen können, müssen Sie (oder Ihre IT-Abteilung oder Ihr Datenbankadministrator) zunächst das Informix-Datenbankmanagementsystem installieren und konfigurieren. Überprüfen Sie die ArcGIS-Systemanforderungen, 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 den Anmeldenamen "sde" für das Betriebssystem.
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 von Clients
Sie können ein Python-Skript über ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Engine Runtime mit der Erweiterung "Geodatabase Update" oder ArcGIS 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 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 IConnect-Clients. Wenn Sie den Informix-Client so installieren, dass er mit ArcGIS Server ausgeführt wird, installieren Sie den 64-Bit-IConnect-Client.
- Wenn Ihr ArcGIS-Client auf einem Microsoft 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 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 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 Server 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 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 mit ArcGIS Desktop (Desktop Standard oder Desktop Advanced), ArcGIS Server oder ArcGIS Engine (mit der Erweiterung "Geodatabase Update") 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 """ # 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 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 von ArcGIS Server 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\License\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/License/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 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.