ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS for Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

Hilfe

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Daten verwalten
  • Werkzeuge
  • Mehr ...

Aktualisieren einer Geodatabase in PostgreSQL

Mit der Standard- oder Advanced-Lizenz verfügbar.

  • Bevor Sie die Aktualisierung ausführen
  • Aktualisieren der Geodatabase

Ziel der Aktualisierung einer Enterprise-Geodatabase ist die Aktualisierung der Geodatabase-Systemtabellen, gespeicherter Prozeduren, Typen und Funktionen, um die neuen Funktionen und Korrekturen nutzen zu können.

Installieren Sie eine neue Version des ArcGIS-Clients, oder wenden Sie ein Service Pack, Patch oder einen Hotfix auf eine vorhandene Installation an, und aktualisieren Sie die Geodatabase.

Bevor Sie die Aktualisierung ausführen

Bei der Aktualisierung eines Enterprise-Systems, einschließlich einer Geodatabase, empfiehlt es sich, vorauszuplanen. Testen Sie die neue Version auf einem Entwicklungs- oder Testserver, um sicherzustellen, dass sie mit allen Client-Anwendungen funktioniert.

Wenn Sie ermittelt haben, dass das neue System wie erwartet arbeitet, planen Sie die Aktualisierung; stellen Sie sicher, dass die für die Aktualisierung erforderlichen Mitarbeiter verfügbar sind und dass diese für die ihnen zugewiesenen Aufgaben über die erforderlichen Berechtigungen verfügen.

Folgende Punkte sind zu beachten:

  • Der ArcSDE-Anwendungsserver für PostgreSQL ist ab ArcGIS 10.3 nicht mehr verfügbar. Sie müssen alle in Karten oder Services verwendeten Anwendungsserver migrieren, um direkte Verbindungen verwenden zu können, bevor Sie Ihre Geodatabase auf die Version 10.3 aktualisieren können.
  • Aktualisierungen von Betaversionen der Software werden nicht unterstützt.
  • Von einer 9.3.1-, 10-, 10.1-, 10.2-, 10.2.1- oder 10.2.2-Geodatabase können Sie direkt auf eine 10.3-Geodatabase aktualisieren, sofern die Datenbank unterstützt wird.
  • Wenn die Geodatabase Version 9.3 oder niedriger aufweist, müssen Sie zuerst auf eine unterstützte Geodatabase und dann auf 10.3 aktualisieren.
  • Nach der Aktualisierung einer Geodatabase können ältere ArcGIS-Versionen möglicherweise nicht mit ihr verbunden werden, da einige ältere Versionen von ArcGIS neuere Versionen der Geodatabase nicht unterstützen. Frühere Versionen als ArcGIS 10 können nicht mit einer Geodatabase der Version 10.3 verbunden werden. ArcGIS 10-Clients können mit einer Geodatabase der Version 10.3 verbunden werden.
  • Es gibt kein offizielles Verfahren für das Herunterstufen einer Geodatabase auf eine frühere Version. Falls Sie die Geodatabase nach der Aktualisierung zurück auf eine ältere Version herunterstufen möchten, stellen Sie die alte Datenbank aus der Sicherungskopie wieder her.

Nachfolgend finden Sie eine Checkliste der Schritte, die vor der Aktualisierung der Geodatabase ausgeführt werden müssen.

  1. Stellen Sie sicher, dass die Version von PostgreSQL, die Sie verwenden möchten, für ArcGIS 10.3 unterstützt wird. Weitere Informationen finden Sie unter PostgreSQL-Datenbank – Anforderungen für ArcGIS.

    Wenn Sie die PostgreSQL-Datenbank aktualisieren müssen, finden Sie weitere Informationen zu neuen Funktionen und zum Aktualisieren des DBMS in der PostgreSQL-Dokumentation. Achten Sie außerdem darauf, dass die aktualisierten Datenbanken den gleichen Namen und den gleichen Besitzer haben müssen wie zuvor, und setzen Sie die Variable "search_path" für die Datenbank auf $user, öffentlich und sde.

  2. Überprüfen Sie, ob Ihre Geodatabase aktualisiert werden kann. Installieren Sie dazu die ArcGIS-Clientversion, die Sie auf einen Computer verschieben möchten. Wenn Sie ArcGIS for Desktop installieren, können Sie eine Verbindung mit der Geodatabase herstellen und das Dialogfeld Datenbankeigenschaften öffnen, um zu ermitteln, ob die Geodatabase aktualisiert werden kann. Wenn Sie ArcGIS for Server oder ArcGIS Engine mit der Erweiterung Geodatabase-Aktualisierung installieren, können Sie mithilfe der ArcPy-Funktion "Describe" ermitteln, ob die Geodatabase aktualisiert werden kann.
    # Open Python.
    cd /arcgis/server/tools
    ./python
    
    # Create a connection to the geodatabase.
    arcpy.CreateDatabaseConnection_management("/tmp/",
                                              "egdb_connection.sde",
                                              "POSTGRESQL",
                                              "mypgdbcluster",
                                              "DATABASE_AUTH",
                                              "sde",
                                              "mysdepassword",
                                              "SAVE_USERNAME",
                                              "mypgdb")
    
    # Import ArcPy and check the geodatabase release.
    import arcpy
    
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    
    print isCurrent
    

    Wenn false zurückgegeben wird, können Sie die Geodatabase aktualisieren. Wenn true zurückgegeben wird, muss die Geodatabase nicht aktualisiert werden. Fahren Sie nicht mit den nachfolgenden Schritten fort.

  3. Konvertieren Sie alle Anwendungsserververbindungen in direkte Verbindungen.
  4. Erstellen Sie eine Sicherungskopie der Datenbank.
  5. Entfernen Sie alle benutzerdefinierten Funktionen, die Sie den Geodatabase-Systemtabellen außerhalb von ArcGIS unter Umständen hinzugefügt haben, z. B. Trigger oder zusätzliche Indizes.

    Das Upgrade-Verfahren kann Anpassungen, die Sie an den Systemtabellen vornehmen, nicht berücksichtigen. Wenn diese Anpassungen die Änderung des Schemas einer Systemtabelle verhindern, schlägt das Upgrade möglicherweise fehl.

  6. Weisen Sie dem Benutzer "sde" Superuser-Berechtigungen in der Datenbank zu.

    Dies ist für die Aktualisierung einer Geodatabase erforderlich.

  7. Stellen Sie sicher, dass keine Verbindungen mit Geodatabase bestehen, die Sie aktualisieren.

    Sie können eine Liste der Benutzer anzeigen, die aktuell mit Ihrer Geodatabase verbunden sind, indem Sie in ArcGIS for Desktop im Dialogfeld Geodatabase-Verwaltung die Registerkarte Benutzer verbinden öffnen.

  8. Kopieren Sie die Datei "st_geometry" (und "libst_raster_pg", wenn Sie den Speichertyp "ST_Raster" in der Geodatabase verwenden) vom DatabaseSupport-Verzeichnis im ArcGIS-Client-Installationsverzeichnis, und platzieren Sie sie im "%PostgreSQL%\lib"-Verzeichnis (Windows) oder im "PostgreSQL lib"-Verzeichnis (Linux) auf dem PostgreSQL-Server. Sie können den genauen Speicherort des "lib"-Verzeichnisses für die PostgreSQL-Installation unter Linux ermitteln, indem Sie das Dienstprogramm "pg_config" als postgres-Benutzer ausführen. Das "lib"-Verzeichnis wird durch den Parameter "PGPKGLIBDIR" angegeben.

    Stellen Sie sicher, dass die Bibliothek der PostgreSQL-Version und dem Betriebssystem des Servers entsprechend heruntergeladen wird. Die Ordner sind mit der Version der PostgreSQL-Bibliothek beschriftet.

    • Wenn auf dem PostgreSQL-Server Linux ausgeführt wird, melden Sie sich als Stammverzeichnisbenutzer beim Server an und übertragen Sie die Datei "st_geometry.so" (und die Datei "libst_raster_pg.so", wenn "ST_Raster" verwendet wird) per FTP in das PostgreSQL lib-Verzeichnis.
    • Wenn auf dem PostgreSQL-Server Windows ausgeführt wird, kopieren Sie die Datei "st_geometry.dll" (und die Datei "libst_raster_pg.dll", wenn Sie "ST_Raster" verwenden) in den Bibliotheksordner des PostgreSQL-Installationsverzeichnisses.

Sie können die Geodatabase jetzt aktualisieren.

Aktualisieren der Geodatabase

Sie können das Werkzeug Geodatabase aktualisieren in ArcGIS for Desktop verwenden oder ein Python-Skript auf dem ArcGIS-Client-Computer ausführen, um Ihre Geodatabase zu aktualisieren.

Verwenden des Werkzeugs Geodatabase aktualisieren

Sie können das Werkzeug Geodatabase aktualisieren im Dialogfeld Datenbankeigenschaften öffnen, indem Sie auf die Schaltfläche Geodatabase aktualisieren auf der Registerkarte Allgemein klicken oder das Werkzeug direkt öffnen. Wenn Sie das Werkzeug über das Dialogfeld Datenbankeigenschaften öffnen, werden die Geodatabase-Verbindungsinformationen in das Textfeld Eingabe-Geodatabase eingetragen.

Esri empfiehlt, die Optionen Überprüfung von Voraussetzungen durchführen und Geodatabase aktualisieren aktiviert zu lassen. Auf diese Weise führt das Werkzeug eine Prüfung aus, um zu ermitteln, ob die Voraussetzungen für die Aktualisierung erfüllt wurden, bevor mit der Aktualisierung der Geodatabase fortgefahren wird.

Die Voraussetzungsprüfung erkennt andere aktive Verbindungen zur Geodatabase und bestimmt, ob der die Verbindung herstellende Benutzer über ausreichende Berechtigungen zum Aktualisieren der Geodatabase verfügt. Außerdem wird sichergestellt, dass die Master-Datenbank XML-Spalten unterstützt, dass alle Datasets geöffnet werden können, und es wird geprüft, dass die Datenbank und die Bibliotheken die gleiche Version aufweisen. Wenn irgendwelche Voraussetzungen nicht erfüllt werden, wird das Werkzeug beendet. Alle Probleme müssen behoben werden, bevor Sie den Aktualisierungsvorgang erneut ausführen.

Die Ergebnisse dieser Überprüfung werden im Dialogfeld "Geoverarbeitungswerkzeug" erfasst. Wenn die Überprüfung (oder die Aktualisierung) nicht durchgeführt werden kann, werden die Ergebnisse auch in die Datei "GDBUpgrade.log" geschrieben, die sich im Verzeichnis c:\Users\<user name>\AppData\Local\ESRI\<ArcGIS product> befindet.

Wenn alle Prüfungen bestanden wurden, fährt das Werkzeug mit der Aktualisierung fort. Der Status für die Voraussetzungsprüfung und die Aktualisierung wird im Dialogfeld des Geoverarbeitungswerkzeugs angezeigt. Falls das Upgrade fehlschlägt, werden die Informationen in die Datei "GDBUpgrade.log" geschrieben. Weitere Informationen werden in die Datei "sdesetup.log" geschrieben, die sich ebenfalls im TEMP-Systemverzeichnis befindet.

Ausführen eines Skripts

Zum Aktualisieren der Geodatabase kopieren Sie eines dieser Beispielskripte in einen Texteditor. Ändern Sie die Variablenwerte so, dass sie mit den Informationen an Ihrem Standort übereinstimmen.

  • Wenn Sie über eine vorhandene Datenbankverbindungsdatei verfügen, die eine direkte Verbindung verwendet und eine Verbindung als SDE-Benutzer herstellt, kopieren Sie das für Ihr Betriebssystem geeignete Skript, fügen Sie es in einen Texteditor ein, ändern Sie es, um für Ihre Site spezifische Informationen zu verwenden, speichern und schließen Sie die Datei, und führen Sie sie anschließend aus:
    # Name: upgradesdegdb_example.py
    # Description: Connect from a Windows computer 
    # with an existing database connection file 
    # and upgrade an enterprise geodatabase in PostgreSQL
    # Author: Esri
    
    # Import arcpy module
    import arcpy
     
    # Local variables:
    Output_Workspace = "C:\\ArcGIS\connection_files\<Connection file>"
    Default_gdb = "C:\\ArcGIS\connection_files\<Connection file>"
    
    # Process: Upgrade Geodatabase
    arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
    
    # Name: upgradesdegdb_example.py
    # Description: Connect from a Linux or UNIX computer 
    # with an existing database connection file 
    # and upgrade an enterprise geodatabase in PostgreSQL
    # Author: Esri
    
    # Import arcpy module
    import arcpy
     
    # Local variables:
    Output_Workspace = "<user>/connections/<Connection_file>"
    Default_gdb = "<user>/connections/<Connection_file>"
    
    # Process: Upgrade Geodatabase
    arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
    
  • Wenn sich keine Datenbankverbindungsdatei auf dem Computer befindet, von dem Sie das Skript für die Aktualisierung erstellen, können Sie das folgende Skript kopieren und Ihre Site-spezifischen Informationen in der Befehlszeile angeben:
    """
    Name: upgrade_gdb.py
    Description: Provide connection information to an Enterprise geodatabase 
    and upgrade the geodatabase
    Type upgrade_gdb.py -h or upgrade_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, or POSTGRESQL.")
    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 ("--upgrade", dest="Upgrade", type="choice", choices=['TRUE', 'FALSE'], default="FALSE", help="Upgrade Options (case-sensitive):  TRUE=Perform Pre-requisite check and upgrade geodatabase, FALSE=Perform Pre-requisite check only.  Default=FALSE")                   
    parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")
    
    
    # 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 to upgrade
    	account_authentication = options.account_authentication.upper()
    	username = options.User.lower() 
    	password = options.Password	
    	do_upgrade = options.Upgrade
    	database = options.Database.lower()
    	database_type = options.Database_type.upper()
    	instance = options.Instance
    	
    	if (database_type == ""):
    		print "\nDatabase type must be specified!\n"
    		parser.print_help()
    		sys.exit(3)
    	
    	if (database_type == "SQLSERVER"):
    		database_type = "SQL_SERVER"
    	
    	# Get the current product license
    	product_license=arcpy.ProductInfo()
    	
    	# Checks required license level to upgrade
    	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
    		print "\n" + product_license + " license found!" + "  Enterprise geodatabase upgrade 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 upgrading.")
    	else:
    		print "\n" + product_license + " license available!  Continuing to upgrade..."
    		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")
    			
    	# Check whether geodatabase needs upgrade
    	isCurrent = arcpy.Describe(Connection_File_Name_full_path).currentRelease
    	
    	if isCurrent == True:
    		print "The geodatabase is already at the current release and cannot be upgraded!"
    		sys.exit("Upgrade did not run.")
    	
    	
    	# Process: Upgrade geodatabase...
    	try:
    		if do_upgrade.lower() == "true":
    			print "Upgrading Geodatabase...\n"
    			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="UPGRADE")
    			for i in range(arcpy.GetMessageCount()):
    				arcpy.AddReturnMessage(i)
    			arcpy.AddMessage("+++++++++\n")
    	
    		else:
    			print "Running Pre-Requisite Check...\n"
    			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="NO_UPGRADE")
    			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)
    
    Wenn Sie die Textdatei beispielsweise als "gdbupgrade" gespeichert haben, Ihr Datenbank-Cluster "mypgdbcluster" und die Datenbank "mypgdb" ist, geben Sie Folgendes in die Befehlszeile ein:

    gdbupgrade --DBMS POSTGRESQL -i mypgdbcluster --auth DATABASE_AUTH -u sde -p mysdepassword --upgrade TRUE -D mypgdb

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS Plattform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2019 Esri. | Datenschutz | Rechtliches