Skip To Content

Aktualisieren von Geodatabases in PostgreSQL unter Amazon Web Services

Um die Geodatabase-Funktionen zu aktualisieren, können Sie eine ArcGIS Server 10.5.1 for Amazon Web Services (AWS)-Instanz erstellen, Ihre Daten in die neue Geodatabase verschieben und Services erneut veröffentlichen. Sie haben auch die Möglichkeit, die ArcGIS-Software auf der vorhandenen AWS-Instanz sowie die Geodatabase zu aktualisieren.

In den folgenden Abschnitten werden Methoden zum Aktualisieren der Geodatabase auf die neueste Version beschrieben und Informationen zu deren Verwendung aufgeführt.

Erstellen einer ArcGIS 10.5.1 for AWS-Instanz und Verschieben der Daten von einer älteren Instanz

Die einfachste Möglichkeit, alle aktuellen Versionen von ArcGIS und PostgreSQL abzurufen, besteht darin, eine ArcGIS Server for AWS-Instanz aus dem aktuellen Amazon Machine Image (AMI) zu erstellen, die Daten zu verschieben und Services erneut zu veröffentlichen. Weitere Informationen dazu, welche Software- und Betriebssystemversionen in den aktuellen ArcGIS Server AMIs enthalten sind, finden Sie unter Esri-AMIs.

Weitere Informationen zum Verschieben von Daten finden Sie unter "Optionen zum Übertragen von Daten in die Cloud" unter Strategien für den Datentransfer zu Amazon Web Services.

Wenn Sie eine ArcGIS Server 10 AWS-Instanz mit Daten in PostgreSQL verwenden, müssen Sie die Geodatabase mit dieser Methode aktualisieren. Zudem müssen Sie neue Instanzen erstellen, Daten verschieben und Services erneut veröffentlichen, wenn Sie Ihre Daten in eine Amazon Relational Database Service (RDS) for PostgreSQL-Instanz verschieben möchten.

Migrieren von einer 10-Instanz auf eine aktuelle Instanz

ArcGIS 10 wies ein separates Amazon Machine Image (AMI) auf, das ein PostgreSQL-8.3.8-Datenbank-Cluster unter Windows enthielt. Die ArcGIS Server-AMIs mit PostgreSQL können jetzt auf Ubuntu Linux ausgeführt werden. Eine PostgreSQL-Datenbank unter Windows kann nicht direkt in eine unter Linux verschoben werden. Es ist weiterhin nicht möglich, ein Upgrade von ArcGIS 10 Server auf ArcGIS 10.1 for Server oder höher auszuführen. Daher müssen Sie bei einer Migration von ArcGIS 10 Server for AWS auf die aktuellen ArcGIS AWS AMIs die Daten verschieben oder erneut laden und sie anschließend erneut veröffentlichen.

Migrieren von einer 10.1-, 10.2.x-, 10.3.x-, 10.4.x-Instanz zu einer 10.5-Instanz

Die in den ArcGIS AMIs enthaltene Version von PostgreSQL wurde im Laufe der Zeit geändert. In der nachfolgenden Tabelle wird die Version von PostgreSQL aufgeführt, die in jeder Linux-AMI enthalten ist:

ArcGIS Server (Linux) mit PostgreSQL-AMIEnthaltene PostgreSQL-Version

ArcGIS 10.1

9.0.5

ArcGIS 10.2

9.0.13

ArcGIS 10.2.1 und 10.2.2

9.2.4

ArcGIS 10.3

9.3.4

ArcGIS 10.3.1

9.3.6

ArcGIS 10.4.x

9.3.10

ArcGIS 10.5

9.3.12

Wenn Sie PostgreSQL 9.3.12 verwenden möchten, können Sie die Daten in ArcGIS Server 10.5 for AWS verschieben. Beachten Sie, dass PostgreSQL keine Unterstützung mehr für 9.0.x-Versionen des Datenbankmanagementsystems bietet, sodass Sie entweder eine neuere Instanz starten bzw. die Daten verschieben oder ein Upgrade für PostgreSQL auf der vorhandenen Instanz ausführen sollten. Folgen Sie zum Upgrade von PostgreSQL den Anweisungen in der PostgreSQL-Dokumentation.

Upgrade der ArcGIS-Software auf der vorhandenen AWS-Instanz und Aktualisieren der Geodatabase

Sie können die aktuelle Version von ArcGIS Server auf der vorhandenen Instanz installieren, die Geodatabase in PostgreSQL aktualisieren und vorhandene Daten und Services weiterhin verwenden, wenn die installierte Version von ArcGIS Server mit der Version von PostgreSQL auf Ihrer Instanz kompatibel ist. Beachten Sie jedoch, dass dies bedeutet, dass die Version des Betriebssystems und der anderen Software beibehalten wird, die sie jeweils zum Zeitpunkt der Erstellung aufwiesen. Wenn Sie Ihre Instanz beispielsweise über ein ArcGIS Server 10.2.2 for AWS AMI erstellt haben, verwenden Sie weiterhin eine PostgreSQL 9.2.4-Datenbank unter einem Ubuntu 12.04-Betriebssystem.

Wenn die vorhandene PostgreSQL-Version auf Ihrer Instanz nicht mit der neuen Version von ArcGIS Server kompatibel ist, müssen Sie PostgreSQL ebenfalls auf eine unterstützte Version aktualisieren. Wenn Sie beispielsweise eine ArcGIS 10.2-Instanz gestartet haben und auf dieser Instanz auf ArcGIS Server 10.5 aktualisieren möchten, müssen Sie PostgreSQL ebenfalls auf eine unterstützte Version aktualisieren.

In den folgenden beiden Abschnitten wird die Aktualisierung einer Geodatabase in PostgreSQL auf einer vorhandenen ArcGIS Server AWS-Instanz erläutert. (Diese Anweisungen gelten nicht für Geodatabases in Amazon RDS for PostgreSQL.)

Aktualisieren von ArcGIS Server auf einer vorhandenen AWS-Instanz und Aktualisieren von Geodatabases auf SITEHOST

Wenn Sie eine ArcGIS Server for AWS-Instanz aktualisieren möchten, führen Sie die Schritte in diesem Abschnitt aus, um Geodatabases in PostgreSQL zu aktualisieren, die sich auf derselben Instanz wie der ArcGIS Server-SITEHOST befinden.

Aktualisieren Sie ArcGIS Server, verschieben Sie die neue st_geometry.so-Datei in das "PostgreSQL lib"-Verzeichnis, beenden Sie ArcGIS Server, führen Sie ein Python-Skript aus, um die einzelnen Geodatabases zu aktualisieren, und starten Sie ArcGIS Server neu.

  1. Installieren Sie die aktuelle Version von ArcGIS Server auf der AWS-Instanz.

    Falls Sie die Software noch nicht installiert haben, finden Sie weitere Informationen unter Aktualisierung einer GIS-Server-Site mit einem einzelnen Computer unter AWS oder Aktualisierung einer GIS-Server-Site mit mehreren Ubuntu-Computern unter AWS.

  2. Bevor Sie die Geodatabases aktualisieren, müssen Sie Sicherungskopien von diesen erstellen. Dies können Sie ganz einfach durch Erstellen einer Cloud Builder-Sicherung der Site (wenn Sie die Site mit Cloud Builder erstellt haben) oder durch Erstellen eines Snapshots des EBS-Volumes erreichen, das die Daten enthält. Wenn Sie einen Snapshot des EBS-Volumes erstellen möchten, finden Sie weitere Anweisungen in der Amazon Web Services-Dokumentation.
  3. Vor der Aktualisierung müssen Sie außerdem die st_geometry.so-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 nach /usr/lib/postgresql/<postgresql version>/lib kopieren.
    1. Die st_geometry.so-Datei ist im Besitz des Root-Benutzers. Wechseln Sie daher die Benutzer zu Root, sobald Sie eine Verbindung zur Amazon Web Services SITEHOST-Instanz als ubuntu hergestellt haben:
      sudo su -
      Hinweis:

      Beachten Sie, dass Sie keine Verbindung als arcgis-Benutzer herstellen und zum Root-Benutzer wechseln können.

    2. Bevor Sie die neue Datei kopieren, benennen Sie die alte um.
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    3. Kopieren Sie die neue st_geometry.so-Datei.
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
    4. Ändern Sie die Berechtigungen für die st_geometry.so-Datei, um anderen Benutzern das Lesen und Ausführen der Datei zu erlauben.
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. Wechseln Sie zum Benutzer "arcgis".
    su - arcgis
  5. Öffnen Sie einen Texteditor, um das aktualisierte Python-Skript zu erstellen.

    vi upgrade.py

  6. Kopieren Sie das folgende Skript in einen Texteditor.

    Ändern Sie das Skript, um für Ihre Site spezifische Informationen zu verwenden, darunter der Instanzname, das sde-Kennwort, der Name der Verbindungsdatei und der Datenbankname.

    #Import arcpy module
    import arcpy
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESQL","ec2-123-456-789-100.compute-1.amazonaws.com","DATABASE_AUTH", "sde", "E$ri3774", "SAVE_USERNAME", "egdb")
    # Upgrade geodatabase
    arcpy.UpgradeGDB_management("/tmp/egdb_connection.sde", "PREREQUISITE_CHECK", "UPGRADE")

    Weitere Informationen zur Syntax des Werkzeugs finden Sie unter Erstellen einer Datenbankverbindung und Aktualisieren der Geodatabase.

  7. Speichern Sie die Datei, und schließen Sie den Texteditor.
  8. Beenden Sie ArcGIS Server.
    /arcgis/server/stopserver.sh
  9. Führen Sie das Skript in Python aus.

    /arcgis/server/tools/python <path to the file>/upgrade.py

    Möglicherweise werden mehrere Meldungen zu Typverweisen angezeigt. Diese können ignoriert werden, sie sind kein Hinweis darauf, dass die Aktualisierung fehlgeschlagen ist.

    Wenn die Aktualisierung nicht durchgeführt werden kann, werden Informationen in die Datei GDBUpgrade.log unter /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> geschrieben.

  10. Führen Sie Folgendes in Python aus, um sicherzustellen, dass Ihre Geodatabase aktualisiert wird. Ersetzen Sie /tmp/egdb_connection.sde durch den Speicherort und den Namen Ihrer Verbindungsdatei.

    Öffnen Sie zunächst eine arcpy-Eingabeaufforderung.

    cd /arcgis/server/tools
    ./python

    Verwenden Sie isCurrent, um zu ermitteln, ob die Geodatabase auf die aktuelle Version aktualisiert wurde.

    import arcpy
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    print isCurrent

    Wenn print isCurrent den Wert True zurückgibt, ist die Geodatabase aktualisiert.

  11. Zum Beenden der arcpy-Eingabeaufforderung geben Sie quit() ein.
  12. Ändern Sie das Skript, und führen Sie es erneut für jede Geodatabase aus, die aktualisiert werden soll.
  13. Falls Sie für PostgreSQL ein Upgrade auf eine unterstützte Version durchführen müssen, erstellen Sie eine Datenbanksicherung, und fahren Sie mit dem Upgrade von PostgreSQL fort. Die Vorgehensweise beim Upgrade von PostgreSQL hängt von den PostgreSQL-Versionen ab, von denen und auf die Sie das Upgrade durchführen. Weitere Anweisungen finden Sie in der PostgreSQL-Dokumentation.
  14. Nachdem alle Geodatabases (und ggf. Datenbanken) aktualisiert wurden, starten Sie ArcGIS Server neu.

    /arcgis/server/startserver.sh

Wenn Sie über eine Site mit mehreren Computern verfügen, fahren Sie mit Schritt 11 unter Aktualisieren einer GIS-Server-Site mit mehreren Ubuntu-Computern unter AWS fort.

Aktualisieren von ArcGIS Server auf einer vorhandenen AWS-Instanz und Aktualisieren von Geodatabases, die sich auf einer eigenen AWS-Instanz (EGDBHOST) befinden

Wenn Sie ArcGIS Server auf einer AWS-Instanz aktualisieren möchten, führen Sie die Schritte in diesem Abschnitt aus, um Geodatabases in PostgreSQL zu aktualisieren, die sich auf einer eigenen, dedizierten AWS-Instanz (EGDBHOST) befinden.

Aktualisieren Sie ArcGIS Server auf dem SITEHOST, verschieben Sie die neue st_geometry.so-Datei von SITEHOST in das "PostgreSQL lib"-Verzeichnis auf EGDBHOST, beenden Sie ArcGIS Server, führen Sie ein Python-Skript von SITEHOST aus, um die einzelnen Geodatabases zu aktualisieren, und starten Sie ArcGIS Server neu.

  1. Installieren Sie die neue Version von ArcGIS Server auf der AWS-Instanz.
  2. Bevor Sie die Geodatabases aktualisieren, müssen Sie Sicherungskopien von diesen erstellen. Die einfachste Möglichkeit besteht darin, einen Snapshot des EBS-Volumes zu erstellen, das Ihre Daten enthält. Weitere Anweisungen zum Erstellen eines Snapshots eines EBS-Volumes finden Sie in der Amazon Web Services-Dokumentation.
  3. Vor der Aktualisierung müssen Sie außerdem die st_geometry.so-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 nach /usr/lib/postgresql/<postgresql version>/lib kopieren.
    1. Bevor Sie die neue Datei kopieren, benennen Sie die alte auf EGDBHOST um. Da die st_geometry.so-Datei im Besitz des Root-Benutzers ist, melden Sie sich bei EGDBHOST als ubuntu an, und wechseln Sie zum Root-Benutzer.
      sudo su -
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    2. Sie müssen die st_geometry.so-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 auf SITEHOST nach /usr/lib/postgresql/<postgresql version>/lib auf EGDBHOST verschieben.

      Da derselbe Benutzer nicht auf die beiden Quell- und Zielverzeichnisse der verschiedenen Instanzen zugreifen kann, melden Sie sich bei SITEHOST als arcgis-Benutzer an, und kopieren Sie die Datei in das "gisdata"-Verzeichnis auf EGDBHOST.

      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
    3. Melden Sie sich bei EGDBHOST als ubuntu an.
    4. Melden Sie sich als Root-Benutzer an.
      sudo su -
    5. Kopieren Sie die st_geometry.so-Datei von gisdata nach /usr/lib/postgresql/<postgresql version>/lib.
      cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
    6. Ändern Sie die Berechtigungen für die st_geometry.so-Datei, um anderen Benutzern das Lesen und Ausführen der Datei zu erlauben.
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. Melden Sie sich bei SITEHOST als arcgis-Benutzer an.
  5. Öffnen Sie einen Texteditor, um das aktualisierte Python-Skript zu erstellen.

    Beispiel:

    vi upgrade.py

  6. Kopieren Sie das folgende Skript in einen Texteditor.

    Ändern Sie das Skript, um für Ihre Site spezifische Informationen zu verwenden, darunter der Instanzname, das sde-Kennwort, der Name der Verbindungsdatei und der Datenbankname.

    #Import arcpy module
    import arcpy
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESQL","ec2-123-456-789-100.compute-1.amazonaws.com","DATABASE_AUTH", "sde", "E$ri3774", "SAVE_USERNAME", "egdb")
    # Upgrade geodatabase
    arcpy.UpgradeGDB_management("/tmp/egdb_connection.sde", "PREREQUISITE_CHECK", "UPGRADE")

    Weitere Informationen zur Syntax des Werkzeugs finden Sie unter Erstellen einer Datenbankverbindung und Aktualisieren der Geodatabase.

  7. Speichern Sie die Datei, und schließen Sie den Texteditor.
  8. Beenden Sie ArcGIS Server.
    /arcgis/server/stopserver.sh
  9. Führen Sie das Skript in Python aus.

    /arcgis/server/tools/python <path to the file>/upgrade.py

    Möglicherweise werden mehrere Meldungen zu Typverweisen angezeigt. Sie können diese Meldungen ignorieren.

    Falls die Aktualisierung fehlschlägt, werden Informationen in die Datei GDBUpgrade.log unter /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> geschrieben.

  10. Um sicherzustellen, dass die Geodatabase aktualisiert wurde, öffnen Sie Python, und führen Sie Folgendes aus, indem Sie /tmp/egdb_connection.sde durch den Speicherort und den Namen Ihrer Verbindungsdatei ersetzen.

    Öffnen Sie zunächst eine arcpy-Eingabeaufforderung.

    cd /arcgis/server/tools
    ./python

    Verwenden Sie isCurrent, um zu ermitteln, ob die Geodatabase auf die aktuelle Version aktualisiert wurde.

    import arcpy
    isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease
    print isCurrent

    Wenn print isCurrent den Wert True zurückgibt, ist die Geodatabase aktualisiert.

  11. Zum Beenden der arcpy-Eingabeaufforderung geben Sie quit() ein.
  12. Ändern Sie das "upgrade.py"-Skript, und führen Sie es erneut für jede Geodatabase aus, die aktualisiert werden soll.
  13. Falls Sie für PostgreSQL ein Upgrade auf eine unterstützte Version durchführen müssen, erstellen Sie eine Datenbanksicherung, und fahren Sie mit dem Upgrade von PostgreSQL fort. Die Vorgehensweise beim Upgrade von PostgreSQL hängt von den PostgreSQL-Versionen ab, von denen und auf die Sie das Upgrade durchführen. Weitere Anweisungen finden Sie in der PostgreSQL-Dokumentation.
  14. Nachdem alle Geodatabases (und ggf. Datenbanken) aktualisiert wurden, starten Sie ArcGIS Server neu.

    /arcgis/server/startserver.sh

Wenn Sie über eine Site mit mehreren Computern verfügen, fahren Sie mit Schritt 11 unter Aktualisieren einer GIS-Server-Site mit mehreren Ubuntu-Computern unter AWS fort.