Mettre à niveau des géodatabases dans PostgreSQL sur ArcGIS Server for Amazon Web Services
Dans cette rubrique
- Créer une instance ArcGIS 10.3.1 for AWS et transférer vos données à partir d'une instance plus ancienne
- Mettre à jour le logiciel ArcGIS sur votre instance AWS et mettre à niveau la géodatabase
Pour mettre à niveau les fonctionnalités d'une géodatabase, vous pouvez créer une instance ArcGIS Server 10.3.1 for Amazon Web Services (AWS), transférer vos données vers la nouvelles géodatabase et republier les services, ou mettre à jour le logiciel ArcGIS sur votre instance AWS et mettre à niveau la géodatabase.
Les sections suivantes décrivent des méthodes disponibles pour mettre à jour votre géodatabase vers la version la plus récente, et précisent dans quels cas vous devez utiliser chaque méthode.
Créer une instance ArcGIS 10.3.1 for AWS et transférer vos données à partir d'une instance plus ancienne
La méthode la plus simple pour obtenir les dernières versions d'ArcGIS et PostgreSQL consiste à créer une instance ArcGIS Server for AWS à partir de la dernière image virtuelle AMI, à transférer vos données et à republier les services. Reportez-vous à la rubrique Images virtuelles AMI ArcGIS Server pour savoir quelles versions du logiciel et du système d'exploitation sont disponibles dans les dernières images virtuelles AMI ArcGIS Server.
Pour savoir comment transférer des données, reportez-vous à la section "Options de transfert des données vers le cloud" de la rubrique Stratégies de transfert de données vers Amazon Web Services.
Si vous utilisez une instance ArcGIS Server 10 AWS avec des données dans PostgreSQL, vous devez utiliser cette méthode pour mettre à niveau votre géodatabase. De plus, si vous voulez transférer vos données vers une instance Amazon Relational Database Service (RDS) for PostgreSQL, vous devez créer de nouvelles instances, transférer les données et republier les services.
Migrer d'une instance 10 vers une instance 10.3.1
ArcGIS 10 comprenait une image virtuelle AMI de géodatabase d'entreprise distincte qui contenait une grappe de bases de données PostgreSQL 8.3.8 sur Windows. Dans ArcGIS 10.3.1, ArcGIS Server (Linux) avec AMI PostgreSQL exécute Ubuntu Linux et peut contenir une grappe de bases de données PostgreSQL 9.3.4. Vous ne pouvez pas effectuer une migration directe depuis une base de données PostgreSQL sous Windows vers une base de données sous Linux. Ainsi, si vous migrez vers ArcGIS 10.3.1 Server for AWS depuis ArcGIS 10 Server for AWS, vous devez transférer ou recharger vos données.
Migrer d'une instance 10.1 ou 10.2.x vers une instance 10.3.1
La version de PostgreSQL comprise avec les images AMI ArcGIS Server a évolué au fil du temps. Le tableau suivant indique la version de PostgreSQL fournie avec chaque AMI Linux :
ArcGIS Server (Linux) avec AMI PostgreSQL | Version PostgreSQL fournie |
---|---|
ArcGIS 10.1 | 9.05 |
ArcGIS 10.2 | 9.013 |
ArcGIS 10.2.1 et 10.2.2 | 9.2.4 |
ArcGIS 10.3 | 9.3.4 |
ArcGIS 10.3.1 | 9.3.6 |
Si vous souhaitez utiliser PostgreSQL 9.3.6, vous pouvez transférer vos données vers ArcGIS Server 10.3.1 for AWS.
Mettre à jour le logiciel ArcGIS sur votre instance AWS et mettre à niveau la géodatabase
Vous pouvez installer la dernière version d'ArcGIS Server sur votre instance, mettre à niveau votre géodatabase dans PostgreSQL et continuer à utiliser vos données et services si la version d'ArcGIS Server que vous installez est compatible avec la version de PostgreSQL sur votre instance. Sachez que le système d'exploitation et tous les autres logiciels de cette instance conservent la version qu'ils présentaient lorsque vous avez créé votre instance. Par exemple, si vous avez créé votre instance à partir d'une image virtuelle AMI ArcGIS Server 10.2.2 for AWS, vous continuerez à utiliser une base de données PostgreSQL 9.2.4 sur un système d'exploitation Ubuntu 12.04.
Si la version PostgreSQL présente sur votre instance n'est pas compatible avec la nouvelle version d'ArcGIS Server, vous devez également mettre à niveau PostgreSQL vers une version prise en charge. Par exemple, si vous avez lancé une instance ArcGIS 10.2 et souhaitez effectuer la mise à niveau vers ArcGIS 10.3.1 for Server sur cette instance, vous devez également mettre à niveau PostgreSQL vers une version prise en charge.
Les deux sections suivantes expliquent comment mettre à niveau une géodatabase dans PostgreSQL sur une instance AWS d'ArcGIS Server. (Ces instructions ne s'appliquent pas aux géodatabases dans Amazon RDS for PostgreSQL.)
Mettre à jour ArcGIS Server sur une instance ArcGIS Server for AWS et mettre à niveau les géodatabases sur SITEHOST
Pour mettre à jour une instance ArcGIS Server for AWS, suivez les instructions de cette section pour mettre à niveau des géodatabases dans PostgreSQL qui résident sur la même instance qu'ArcGIS Server (SITEHOST).
Mettez ArcGIS for Server à niveau, déplacez le nouveau fichier st_geometry.so vers le répertoire lib PostgreSQL, arrêtez ArcGIS Server, exécutez un script Python pour mettre à niveau chaque géodatabase et redémarrez ArcGIS Server.
- Installez la dernière version d'ArcGIS for Server sur votre instance AWS.
Reportez-vous à la rubrique Appliquer une mise à jour ArcGIS sur un site à une seule machine ou Appliquer une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu pour obtenir des instructions si vous n'avez pas déjà installé le logiciel.
- Créez des copies de sauvegarde de vos géodatabases avant de les mettre à niveau. La méthode la plus simple consiste à effectuer une sauvegarde Cloud Builder de votre site (si vous avez créé votre site à l'aide de Cloud Builder) ou à créer un instantané du volume EBS qui contient vos données. Pour créer un instantané de votre volume EBS, consultez la documentation concernant Amazon Web Services.
- Avant la mise à niveau, vous devez copier le fichier st_geometry.so du répertoire /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 vers /usr/lib/postgresql/<postgresql version>/lib .
- Le fichier st_geometry.so appartient à l'utilisateur racine. Ainsi, après avoir connecté l'instance Amazon Web Services SITEHOST en tant que qu'utilisateur ubuntu, connectez-vous en tant qu'utilisateur racine :
sudo su -
Remarque :
N'oubliez pas que vous ne pouvez pas vous connecter comme utilisateur arcgis, puis en tant qu'utilisateur racine.
- Avant de copier le nouveau fichier, renommez l'ancien.
mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
- Copiez le nouveau fichier st_geometry.so.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
- Changez les autorisations du fichier st_geometry.so pour autoriser d'autres utilisateurs à le lire et à l'exécuter.
chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- Le fichier st_geometry.so appartient à l'utilisateur racine. Ainsi, après avoir connecté l'instance Amazon Web Services SITEHOST en tant que qu'utilisateur ubuntu, connectez-vous en tant qu'utilisateur racine :
- Connectez-vous en tant qu'utilisateur arcgis.
su - arcgis
- Ouvrez un éditeur de texte pour créer le script Python de mise à niveau.
vi upgrade.py
- Copiez le script suivant dans un éditeur de texte.
Modifiez le script de façon à utiliser les informations propres à votre site, notamment le nom d'instance, le mot de passe sde, le nom et l'emplacement du fichier de connexion et le nom de la base de données.
#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")
Reportez-vous aux rubriques Créer une connexion à une base de données et Mettre une géodatabase à niveau pour plus d'informations sur la syntaxe de l'outil.
- Enregistrez le fichier et fermez l'éditeur de texte.
- Arrêtez ArcGIS for Server.
/arcgis/server/stopserver.sh
- Exécutez le script dans Python.
/arcgis/server/tools/python <path to the file>/upgrade.py
Il est possible que plusieurs messages concernant les références de type s'affichent. Vous pouvez les ignorer, ils ne signifient pas que la mise à niveau a échoué.
Des informations sont consignées dans le fichier journal GDBUpgrade.log sous /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> si la mise à niveau échoue.
- Pour vous assurer que votre géodatabase est mise à niveau, exécutez ce qui suit dans Python. Remplacez /tmp/egdb_connection.sde par l'emplacement et le nom de votre fichier de connexion.
D'abord, ouvrez une invite arcpy.
cd /arcgis/server/tools ./python
Utilisez isCurrent pour savoir si la géodatabase est mise à niveau vers la version actuelle.
import arcpy isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease print isCurrent
Si print isCurrent renvoie True, votre géodatabase est mise à niveau.
- Pour quitter l'invite arcpy, tapez quit().
- Modifiez le script et exécutez-le à nouveau pour chaque géodatabase que vous devez mettre à niveau.
- Si vous devez effectuer la mise à niveau de PostgreSQL vers une version prise en charge, créez une sauvegarde de la base de données et procédez à la mise à niveau de PostgreSQL. Le mode de mise à niveau de PostgreSQL dépend des versions de PostgreSQL d'origine et de destination. Consultez la documentation PostgreSQL pour en savoir plus.
- Une fois toutes les géodatabases (et les bases de données, si nécessaire) mises à niveau, redémarrez ArcGIS Server.
/arcgis/server/startserver.sh
Si vous possédez un site à plusieurs machines, passez à l'étape 11 de la rubrique Appliquer une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu.
Mettre à jour ArcGIS Server sur une instance ArcGIS Server for AWS et mettre à niveau les géodatabases se trouvant sur leur propre instance AWS (EGDBHOST)
Pour mettre à jour une instance ArcGIS Server for AWS, suivez les instructions de cette section pour mettre à niveau des géodatabases dans PostgreSQL qui résident sur leur propre instance AWS (EGDBHOST).
Mettez ArcGIS for Server à niveau sur SITEHOST, déplacez le nouveau fichier st_geometry.so depuis SITEHOST vers le répertoire lib PostgreSQL sur SITEHOST, arrêtez ArcGIS Server, exécutez un script Python depuis SITEHOST pour mettre à niveau chaque géodatabase et redémarrez ArcGIS Server.
- Installez la nouvelle version d'ArcGIS for Server sur votre instance AWS.
Reportez-vous à la rubrique Appliquer une mise à jour ArcGIS sur un site à une seule machine ou Appliquer une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu pour en savoir plus.
- Créez des copies de sauvegarde de vos géodatabases avant de les mettre à niveau. Le plus simple consiste à créer une capture d'écran du volume EBS contenant vos données. Consultez la documentation concernant Amazon Web Services pour savoir comment créer un instantané d'un volume EBS.
- Avant la mise à niveau, vous devez copier le fichier st_geometry.so du répertoire /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 vers /usr/lib/postgresql/<postgresql version>/lib .
- Avant de copier le nouveau fichier, renommez l'ancien sur EGDBHOST. Comme le fichier st_geometry.so est la propriété de l'utilisateur racine, connectez-vous à EGDBHOST en tant qu'utilisateur ubuntu, puis en tant qu'utilisateur racine.
sudo su - mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
- Vous devez transférer le fichier st_geometry.so du répertoire /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 sur SITEHOST vers /usr/lib/postgresql/<postgresql version>/lib sur EGDBHOST.
Comme les deux répertoires source et de destination qui se trouvent sur les différentes instances ne sont pas accessibles par le même utilisateur, connectez-vous à SITEHOST en tant qu'utilisateur arcgis et copiez le fichier dans le répertoire gisdata sur EGDBHOST.
cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
- Connectez-vous à EGDBHOST en tant qu'utilisateur ubuntu.
- Connectez-vous en tant qu'utilisateur racine.
sudo su -
- Copiez le fichier st_geometry.so depuis gisdata vers /usr/lib/postgresql/<postgresql version>/lib.
cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- Changez les autorisations du fichier st_geometry.so pour autoriser d'autres utilisateurs à le lire et à l'exécuter.
chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
- Avant de copier le nouveau fichier, renommez l'ancien sur EGDBHOST. Comme le fichier st_geometry.so est la propriété de l'utilisateur racine, connectez-vous à EGDBHOST en tant qu'utilisateur ubuntu, puis en tant qu'utilisateur racine.
- Connectez-vous à SITEHOST en tant qu'utilisateur arcgis.
- Ouvrez un éditeur de texte pour créer le script Python de mise à niveau.
Par exemple :
vi upgrade.py
- Copiez le script suivant dans un éditeur de texte.
Modifiez le script de façon à utiliser les informations propres à votre site, notamment le nom d'instance, le mot de passe sde, le nom et l'emplacement du fichier de connexion et le nom de la base de données.
#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")
Reportez-vous aux rubriques Créer une connexion à une base de données et Mettre une géodatabase à niveau pour plus d'informations sur la syntaxe de l'outil.
- Enregistrez le fichier et fermez l'éditeur de texte.
- Arrêtez ArcGIS for Server.
/arcgis/server/stopserver.sh
- Exécutez le script dans Python.
/arcgis/server/tools/python <path to the file>/upgrade.py
Il est possible que plusieurs messages concernant les références de type s'affichent. Vous pouvez ignorer ces messages.
Si la mise à niveau échoue, des informations sont consignées dans le fichier journal GDBUpgrade.log, sous /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#>.
- Pour vous assurer que votre géodatabase est mise à niveau, ouvrez Python et exécutez ce qui suit, en remplaçant /tmp/egdb_connection.sde par l'emplacement et le nom de votre fichier de connexion.
D'abord, ouvrez une invite arcpy.
cd /arcgis/server/tools ./python
Utilisez isCurrent pour savoir si la géodatabase est mise à niveau vers la version actuelle.
import arcpy isCurrent = arcpy.Describe('/tmp/egdb_connection.sde').currentRelease print isCurrent
Si print isCurrent renvoie True, votre géodatabase est mise à niveau.
- Pour quitter l'invite arcpy, tapez quit().
- Modifiez le script upgrade.py et exécutez-le à nouveau pour chaque géodatabase que vous devez mettre à niveau.
- Si vous devez effectuer la mise à niveau de PostgreSQL vers une version prise en charge, créez une sauvegarde de la base de données et procédez à la mise à niveau de PostgreSQL. Le mode de mise à niveau de PostgreSQL dépend des versions de PostgreSQL d'origine et de destination. Consultez la documentation PostgreSQL pour en savoir plus.
- Une fois toutes les géodatabases (et les bases de données, si nécessaire) mises à niveau, redémarrez ArcGIS Server.
/arcgis/server/startserver.sh
Si vous possédez un site à plusieurs machines, passez à l'étape 11 de la rubrique Appliquer une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu.
Vous avez un commentaire à formuler concernant cette rubrique ?