Aktualisieren von Geodatabases in PostgreSQL in ArcGIS Server for Amazon Web Services
In den folgenden Abschnitten werden vier Szenarien für Geodatabase-Aktualisierungen beschrieben:
- Verschieben von ArcGIS 10.1 for Amazon Web Services nach ArcGIS 10.2.1 for Amazon Web Services
- Verschieben von ArcGIS 10 for Amazon Web Services nach ArcGIS 10.2.1 for Amazon Web Services
- Verschieben von Daten aus einer ArcGIS 10 oder 10.2 for Amazon Web Services-Instanz in eine ArcGIS Server 10.2.1 for Amazon Web Services-Instanz
- Aktualisieren einer ArcGIS 10.1 for Amazon Web Services-Instanz auf 10.2.1 und Aktualisieren von Geodatabases, die sich auf derselben Instanz wie ArcGIS for Server (SITEHOST) befinden
- Aktualisieren einer vorhandenen ArcGIS 10.1 for Amazon Web Services-Instanz auf 10.2.1 und Aktualisieren von Geodatabases, die sich auf der eigenen Amazon Web Services-Instanz (EGDBHOST) befinden
Verschieben von Daten aus einer ArcGIS 10.1 for Amazon Web Services-Instanz in eine ArcGIS Server 10.2.1 for Amazon Web Services-Instanz
Eine Möglichkeit, auf ArcGIS 10.2.1 zu migrieren, besteht darin, eine neue ArcGIS Server 10.2.1 for Amazon Web Services-Instanz zu erstellen, die Daten zu verschieben und die Services erneut zu veröffentlichen.
Verschieben von Daten aus einer ArcGIS 10 for Amazon Web Services EGDB-Instanz in eine ArcGIS Server 10.2.1 for Amazon Web Services-Instanz
ArcGIS 10 wies ein separates Amazon Machine Image (AMI) für Enterprise-Geodatabases auf, das ein PostgreSQL-8.3.8-Datenbank-Cluster unter Windows enthielt. In ArcGIS 10.2.1 führt die ArcGIS Server (Linux) mit PostgreSQL-AMI Ubuntu Linux aus, und kann optional ein PostgreSQL 9.2.4-Datenbank-Cluster enthalten. Eine PostgreSQL-Datenbank unter Windows kann nicht direkt in eine unter Linux verschoben werden. Wenn Sie also auf ArcGIS Server 10.2.1 for Amazon Web Services migrieren, müssen Sie die Daten verschieben oder hochladen. Weitere Informationen finden Sie im Abschnitt "Optionen zum Übertragen von Daten an die Cloud" unter Strategien für den Datentransfer zu Amazon Web Services. Nachdem die Daten in die neue Instanz verschoben wurden, müssen Sie Ihre Services erneut veröffentlichen.
Verschieben von Daten aus einer ArcGIS 10 oder 10.2 for Amazon Web Services-Instanz in eine ArcGIS Server 10.2.1 for Amazon Web Services-Instanz
In ArcGIS 10.1 und 10.2 enthielt die ArcGIS Server (Linux) mit PostgreSQL-AM PostgreSQL 9.0.13. Wenn Sie Ihre Daten in ArcGIS Server 10.2.1 for Amazon Web Services und PostgreSQL 9.2.4 verschieben möchten, verschieben Sie die Daten oder laden Sie sie erneut. Weitere Informationen finden Sie im Abschnitt "Optionen zum Übertragen von Daten an die Cloud" unter Strategien für den Datentransfer zu Amazon Web Services. Nachdem die Daten in die neue Instanz verschoben wurden, müssen Sie Ihre Services erneut veröffentlichen.
Aktualisieren einer ArcGIS 10.1 for Amazon Web Services-Instanz auf 10.2.1 und Aktualisieren von Geodatabases, die sich auf derselben Instanz wie ArcGIS for Server (SITEHOST) befinden
Anhand der Schritte in diesem Abschnitt wird die Aktualisierung von Geodatabases in PostgreSQL erläutert, die sich auf derselben Instanz befinden wie ArcGIS for Server (SITEHOST).
Aktualisieren Sie ArcGIS for 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 dann ArcGIS-Server neu.
-
Das Service Pack oder Patch für ArcGIS for Server sollte bereits auf der AWS-Instanz installiert sein.
Falls Sie die Software noch nicht installiert haben, finden Sie weitere Informationen unter Anwenden einer ArcGIS-Aktualisierung auf eine Site mit einem Computer oder Anwenden einer ArcGIS-Aktualisierung auf eine Site mit mehreren Computern.
- Bevor Sie die Geodatabases aktualisieren, müssen Sie Sicherungskopien von ihnen erstellen. Die einfachste Möglichkeit besteht darin, einen Snapshot des EBS-Datenträgers zu erstellen, der Ihre Daten enthält.
- Bevor Sie eine Aktualisierung ausführen, müssen Sie auch die "st_geometry.so"-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 nach /usr/lib/postgresql/9.0/lib kopieren.
- Die "st_geometry.so" ist im Besitz des Stammverzeichnisses. Daher müssen Sie Benutzer in "root" ändern, nachdem Sie eine Verbindung zur Amazon Web Services SITEHOST-Instanz als ubuntu hergestellt haben.
sudo su -
Hinweis:
Beachten Sie, dass keine Verbindung als arcgis-Benutzer herstellen und zum Root-Benutzer wechseln können.
- Bevor Sie die neue Datei kopieren, benennen Sie die alte um.
mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- Kopieren Sie die neue "st_geometry.so"-Datei.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/9.0/lib
- Ändern Sie die Berechtigungen für die Datei "st_geometry.so", um anderen Benutzern das Lesen und Ausführen der Datei zu erlauben.
chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
- Die "st_geometry.so" ist im Besitz des Stammverzeichnisses. Daher müssen Sie Benutzer in "root" ändern, nachdem Sie eine Verbindung zur Amazon Web Services SITEHOST-Instanz als ubuntu hergestellt haben.
- Wechseln Sie zum Benutzer "arcgis".
su - arcgis
- Öffnen Sie einen Texteditor, um das aktualisierte Python-Skript zu erstellen.
Beispiel:
vi upgrade.py
- 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.
- Speichern Sie die Datei, und schließen Sie den Texteditor.
- Beenden Sie ArcGIS for Server.
/arcgis/server/stopserver.sh
- 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.
Informationen werden in die Datei "GDBUpgrade.log" unter /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> geschrieben, wenn die Aktualisierung nicht durchgeführt werden kann.
- 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.
- Zum Beenden der arcpy-Eingabeaufforderung geben Sie quit() ein.
- Ändern Sie das Skript, und führen Sie es erneut für jede Geodatabase aus, die aktualisiert werden soll.
- Nachdem alle Geodatabases 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 14 unter Anwenden einer ArcGIS-Aktualisierung auf eine Ubuntu-Site mit mehreren Computern fort.
Aktualisieren einer vorhandenen ArcGIS 10.1 for Amazon Web Services-Instanz auf 10.2.1 und Aktualisieren von Geodatabases, die sich auf der eigenen Amazon Web Services-Instanz (EGDBHOST) befinden
Anhand der Schritte in diesem Abschnitt wird die Aktualisierung von Geodatabases in PostgreSQL erläutert, die sich auf der eigenen, dedizierten Amazon Web Services-Instanz (EGDBHOST) befinden.
Aktualisieren Sie ArcGIS for Server auf SITEHOST, verschieben Sie die neue "st_geometry.so"-Datei von SITEHOST in das "PostgreSQL lib"-Verzeichnis auf EGDBHOST, beenden Sie ArcGIS for Server, führen Sie ein Python-Skript über SITEHOST aus, um die einzelnen Geodatabases zu aktualisieren, und starten Sie dann ArcGIS for Server neu.
-
Installieren Sie das Service Pack oder Patch für ArcGIS for Server auf der AWS-Instanz.
Weitere Anweisungen finden Sie unter Anwenden eines Service Packs auf eine Site mit einem Computer oder Anwenden eines Service Packs auf eine Windows-Site mit mehreren Computern.
- Bevor Sie die Geodatabases aktualisieren, müssen Sie Sicherungskopien von ihnen erstellen. Die einfachste Möglichkeit besteht darin, einen Snapshot des EBS-Datenträgers zu erstellen, der Ihre Daten enthält.
- Bevor Sie eine Aktualisierung ausführen, müssen Sie auch die "st_geometry.so"-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 nach /usr/lib/postgresql/9.0/lib kopieren.
- 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 dann zum root-Benutzer.
sudo su - mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
- Sie müssen die "st_geometry.so"-Datei von /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 auf SITEHOST nach /usr/lib/postgresql/9.0/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
- Melden Sie sich bei EGDBHOST als ubuntu an.
- Melden Sie sich als root-Benutzer an.
sudo su -
- Kopieren Sie die Datei "st_geometry.so" von gisdata nach /usr/lib/postgresql/9.0/lib.
cp /gisdata/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometry.so
- Ändern Sie die Berechtigungen für die Datei "st_geometry.so", um anderen Benutzern das Lesen und Ausführen der Datei zu erlauben.
chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
- 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 dann zum root-Benutzer.
- Melden Sie sich bei SITEHOST als arcgis-Benutzer an.
- Öffnen Sie einen Texteditor, um das aktualisierte Python-Skript zu erstellen.
Beispiel:
vi upgrade.py
- 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.
- Speichern Sie die Datei, und schließen Sie den Texteditor.
- Beenden Sie ArcGIS for Server.
/arcgis/server/stopserver.sh
- 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.
Wenn 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.
- 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 der Verbindungsdatei und den Namen 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.
- Zum Beenden der arcpy-Eingabeaufforderung geben Sie quit() ein.
- Ändern Sie das "upgrade.py"-Skript, und führen Sie es erneut für jede Geodatabase aus, die aktualisiert werden soll.
- Nachdem alle Geodatabases 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 14 unter Anwenden einer ArcGIS-Aktualisierung auf eine Ubuntu-Site mit mehreren Computern fort.