Aktualisieren einer Geodatabase in SAP HANA

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

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 von ArcGIS Pro oder ArcGIS Server, und aktualisieren Sie die Geodatabase.

Führen Sie die Schritte durch, die vor der Aktualisierung erforderlich sind, und aktualisieren Sie dann die Geodatabase mit dem Geoverarbeitungswerkzeug Geodatabase aktualisieren oder einem Python-Skript.

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 getestet haben, dass das neue System wie erwartet läuft, 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.

Beachten Sie, dass es kein offizielles Verfahren für das Herunterstufen einer Geodatabase auf eine frühere Version gibt. Falls Sie die Datenbank nach der Aktualisierung auf eine neuere Version herunterstufen möchten, stellen Sie die alte Datenbank aus einer Sicherungskopie wieder her.

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

  1. Weitere Informationen dazu, ob die Kombination der Versionen von SAP HANA und ArcGIS, die Sie verwenden möchten, von Esri unterstützt wird, finden Sie unter SAP HANA-Datenbank – Anforderungen für ArcGIS.

    Von einer Geodatabase der Versionen 10.6.x oder höher können Sie direkt eine Aktualisierung durchführen, sofern Ihre SAP HANA-Datenbankversion für die ArcGIS-Version, auf die Sie ein Upgrade durchführen möchten, unterstützt wird.

  2. Überprüfen Sie, ob ein Upgrade für Ihre Geodatabase durchgeführt werden kann. Installieren Sie hierzu die ArcGIS Pro- oder ArcGIS Server-Version, auf die das Upgrade durchgeführt werden soll, auf einem Computer.
    • Um eine Bestätigung über ArcGIS Pro durchzuführen, stellen Sie eine Verbindung mit der Geodatabase im Bereich Katalog her, und öffnen Sie Eigenschaften: Datenbank. Es wird eine Meldung unter Upgrade-Status angezeigt, die angibt, ob eine Aktualisierung durchgeführt werden kann.
    • Um eine Bestätigung über ArcGIS Server durchzuführen, verwenden Sie die Describe-Funktion in ArcPy, um zu ermitteln, ob Sie die Geodatabase aktualisieren können. Das folgende Beispiel zeigt, wie eine Verbindung zur Geodatabase hergestellt und überprüft wird, ob die Geodatabase aktualisiert werden kann.
      # Open Python.
      cd /arcgis/server/tools
      ./python
      
      # Create a connection to the geodatabase. You must connect as the sde user.
      arcpy.CreateDatabaseConnection_management("/usr/tmp/",
                                                "egdb_connection.sde",
                                                "SAP HANA",
                                                sys.argv[1],
                                                "DATABASE_AUTH",
                                                "sde",
                                                sys.argv[2],
                                                "SAVE_USERNAME")
      
      # Import ArcPy and check the geodatabase release.
      import arcpy
      
      isCurrent = arcpy.Describe('/usr/tmp/egdb_connection.sde').currentRelease
      
      print isCurrent
      Wenn False zurückgegeben wird, können Sie die Geodatabase aktualisieren. Fahren Sie mit den restlichen Schritten fort. Wenn True zurückgegeben wird, muss keine Aktualisierung durchgeführt werden. Fahren Sie nicht mit den nachfolgenden Schritten fort.
  3. Überprüfen Sie, ob der SDE-Benutzer über catalog read-Berechtigungen in der Datenbank verfügt.
  4. Erstellen Sie eine Sicherungskopie der Datenbank.
  5. Entfernen Sie alle benutzerdefinierten Funktionen, die Sie den Geodatabase-Systemtabellen außerhalb von ArcGIS hinzugefügt haben.

    Bei der Aktualisierung werden keine Anpassungen unterstützt, die Sie an den Systemtabellen vornehmen. Wenn diese Anpassungen die Änderung des Schemas einer Systemtabelle verhindern, schlägt die Aktualisierung fehl.

  6. Überprüfen Sie, ob keine anderen Verbindungen zur Geodatabase bestehen, die Sie aktualisieren.

Sie können die Geodatabase jetzt aktualisieren.

Aktualisieren der Geodatabase

Zum Aktualisieren Ihrer Geodatabase können Sie das Werkzeug Geodatabase aktualisieren in ArcGIS Pro oder ein Python-Skript verwenden, das auf einem ArcGIS Pro- oder ArcGIS Server-Computer ausgeführt wird.

Verwenden des Werkzeugs "Geodatabase aktualisieren"

Öffnen Sie das Geoverarbeitungswerkzeug Geodatabase aktualisieren über eines der folgenden Elemente der Benutzeroberfläche:

  • das Toolset "Geodatabase-Verwaltung" in der Toolbox "Data Management"
  • die Schaltfläche Upgrade ausführen auf der Registerkarte Allgemein des Dialogfeldes Eigenschaften: Datenbank in ArcGIS Pro

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 überprüft das Werkzeug, ob die Voraussetzungen zum Aktualisieren erfüllt sind, bevor die Geodatabase-Aktualisierung fortgesetzt wird.

Sie müssen eine Verbindung mit der Geodatabase als SDE-Benutzer herstellen, um die Voraussetzungsprüfung auszuführen und die Geodatabase zu aktualisieren.

Die Voraussetzungsprüfung erkennt andere aktive Verbindungen zur Geodatabase, ermittelt, ob Sie die Verbindung als SDE-Benutzer hergestellt haben, und überprüft, ob dem SDE-Benutzer ausreichende Berechtigungen zum Aktualisieren der Geodatabase zugewiesen sind (catalog read). 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 des Geoverarbeitungswerkzeugs 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 die Aktualisierung fehlschlägt, werden die Informationen in die Datei GDBUpgrade.log geschrieben. Weitere Informationen werden in die Datei sde_setup.log geschrieben, die sich ebenfalls im TEMP-Systemverzeichnis befindet.

Ausführen eines Skripts

Um die Geodatabase zu aktualisieren, kopieren Sie das folgende Skript, fügen es in eine Textdatei ein und speichern es. Anschließend können Sie das Skript mit Site-spezifischen Informationen in der Befehlszeile ausführen.

"""
Name: upgrade_gdb_for_sap_hana.py
Type upgrade_gdb_for_sap_hana.py -h or upgrade_gdb_sap_hana.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 ("-i", dest="data_source", type="string", default="", help="SAP HANA ODBC data source name")
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")                   


# 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 = "DATABASE_AUTH"
	username = options.User.lower() 
	password = options.Password	
	do_upgrade = options.Upgrade
	database = ""
	database_type = "SAP HANA"
	instance = options.data_source
	
	
	# 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
	Conn_File_NameT = instance + "_" + 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.management.CreateDatabaseConnection(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")
        			

	# Process: Upgrade geodatabase...
	try:
		if do_upgrade.lower() == "true":
			print ("Upgrading Geodatabase...\n")
			arcpy.management.UpgradeGDB(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.management.UpgradeGDB(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, Ihre SAP HANA-Datenquelle den Namen mydata hat und Ihr SDE-Kennwort mysdepassword lautet, geben Sie Folgendes in die Eingabeaufforderung ein:

gdbupgrade --DBMS SAP HANA -i mydata -u sde -p mysdepassword --upgrade TRUE