Mise à niveau des géodatabases dans PostgreSQL sur ArcGIS Server for Amazon Web Services

Les sections suivantes décrivent quatre scénarios de mise à niveau de géodatabases :

Transfert de données d'une instance ArcGIS Server 10.1 for Amazon Web Services vers une instance ArcGIS Server 10.2.1 for Amazon Web Services

Pour effectuer la migration vers ArcGIS 10.2.1, vous pouvez créer une nouvelle instance ArcGIS Server 10.2.1 for Amazon Web Services, transférer vos données et republier vos services.

Déplacement de données d'une instance ArcGIS 10 for Amazon Web Services EGDB vers une instance ArcGIS Server 10.2.1 for Amazon Web Services

ArcGIS 10 comprenait une image virtuelle AMI de géodatabase d'entreprise distincte qui contenait un cluster de bases de données PostgreSQL 8.3.8 sur Windows. Dans ArcGIS 10.2.1, ArcGIS Server (Linux) avec AMI PostgreSQL exécute Ubuntu Linux et peut contenir une grappe de bases de données PostgreSQL 9.2.4. Vous ne pouvez pas passer directement d'une base de données PostgreSQL sur Windows à une base de données sur Linux. Par conséquent, lorsque vous effectuez la migration vers ArcGIS Server 10.2.1 for Amazon Web Services, vous devez déplacer ou recharger vos 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. Une fois les données déplacées vers la nouvelle instance, vous devez republier vos services.

Transfert de données d'une instance ArcGIS 10.1 ou 10.2.1 for Amazon Web Services vers une instance ArcGIS Server 10.2.1 for Amazon Web Services

Dans ArcGIS 10.1 et 10.2, ArcGIS Server (Linux) avec AMI PostgreSQL contenait PostgreSQL 9.0.13. Si vous voulez déplacer vos données vers ArcGIS Server 10.2.1 for Amazon Web Services et PostgreSQL 9.2.4, déplacez ou rechargez vos 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. Une fois les données déplacées vers la nouvelle instance, vous devez republier vos services.

Mise à jour d'une instance ArcGIS 10.1 for Amazon Web Services existante vers la version 10.2.1 et mise à niveau de géodatabases qui se trouvent sur la même instance qu'ArcGIS Server (SITEHOST)

Les étapes de cette section expliquent comment mettre à niveau les géodatabases dans PostgreSQL qui se trouvent 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, puis redémarrez ArcGIS Server.

Etapes :
  1. Le Service Pack ou le correctif d'ArcGIS for Server doit déjà être installé sur votre instance AWS.

    Reportez-vous à la rubrique Application d'une mise à jour ArcGIS sur un site à une seule machine ou Application d'une mise à jour ArcGIS sur un site à plusieurs machines Windows pour plus d'informations si le logiciel n'est pas encore installé.

  2. 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.
  3. Avant de procéder à la mise à niveau, vous devez également copier le fichier st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 vers /usr/lib/postgresql/9.0/lib.
    1. Le fichier st_geometry.so est la propriété de l'utilisateur racine. Par conséquent, une fois connecté à l'instance Amazon Web Services SITEHOST en tant qu'utilisateur ubuntu, connectez-vous en tant qu'utilisateur racine :
      sudo su -
      
      RemarqueRemarque :

      N'oubliez pas que vous ne pouvez pas vous connecter comme utilisateur arcgis, puis en tant qu'utilisateur racine.

    2. Avant de copier le nouveau fichier, renommez l'ancien.
      mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
      
    3. Copiez le nouveau fichier st_geometry.so.
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/9.0/lib
      
    4. Changez les autorisations du fichier st_geometry.so pour autoriser d'autres utilisateurs à le lire et à l'exécuter.
      chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
      
  4. Connectez-vous en tant qu'utilisateur arcgis.
    su - arcgis
    
  5. Ouvrez un éditeur de texte pour créer le script Python de mise à niveau.

    Par exemple :

    vi upgrade.py
    

  6. 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.

  7. Enregistrez le fichier et fermez l'éditeur de texte.
  8. Arrêtez ArcGIS for Server.
    /arcgis/server/stopserver.sh
    
  9. 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é.

    Les informations sont écrites dans le fichier GDBUpgrade.log sous /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> en cas d'échec de la mise à niveau.

  10. 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.

  11. Pour quitter l'invite arcpy, tapez quit().
  12. Modifiez le script et exécutez-le à nouveau pour chaque géodatabase que vous devez mettre à niveau.
  13. Une fois toutes les géodatabases mises à niveau, redémarrez ArcGIS Server.

    /arcgis/server/startserver.sh
    

Si vous possédez un site à plusieurs machines, passez à l'étape 14 de la rubrique Application d'une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu.

Mise à jour d'une instance ArcGIS 10.1 for Amazon Web Services existante vers la version 10.2.1 et mise à niveau de géodatabases qui se trouvent sur leur propre instance Amazon Web Services (EGDBHOST)

Les étapes de cette section expliquent comment mettre à niveau les géodatabases dans PostgreSQL qui se trouvent sur leur propre instance Amazon Web Services dédiée (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, puis redémarrez ArcGIS Server.

Etapes :
  1. Installez le Service Pack ou le correctif d'ArcGIS for Server sur votre instance AWS.
  2. 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.
  3. Avant de procéder à la mise à niveau, vous devez également copier le fichier st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 vers /usr/lib/postgresql/9.0/lib.
    1. 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/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
      
    2. Vous devez déplacer le fichier st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 sur SITEHOST vers /usr/lib/postgresql/9.0/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
      
    3. Connectez-vous à EGDBHOST en tant qu'utilisateur ubuntu.
    4. Connectez-vous en tant qu'utilisateur racine.
      sudo su -
      
    5. Copiez le fichier st_geometry.so depuis gisdata vers /usr/lib/postgresql/9.0/lib.
      cp /gisdata/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometry.so
      
    6. Changez les autorisations du fichier st_geometry.so pour autoriser d'autres utilisateurs à le lire et à l'exécuter.
      chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
      
  4. Connectez-vous à SITEHOST en tant qu'utilisateur arcgis.
  5. Ouvrez un éditeur de texte pour créer le script Python de mise à niveau.

    Par exemple :

    vi upgrade.py
    

  6. 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.

  7. Enregistrez le fichier et fermez l'éditeur de texte.
  8. Arrêtez ArcGIS for Server.
    /arcgis/server/stopserver.sh
    
  9. 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, les informations sont écrites dans le fichier GDBUpgrade.log sous /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#>.

  10. 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.

  11. Pour quitter l'invite arcpy, tapez quit().
  12. Modifiez le script upgrade.py et exécutez-le à nouveau pour chaque géodatabase que vous devez mettre à niveau.
  13. Une fois toutes les géodatabases mises à niveau, redémarrez ArcGIS Server.

    /arcgis/server/startserver.sh
    

Si vous possédez un site à plusieurs machines, passez à l'étape 14 de la rubrique Application d'une mise à jour ArcGIS sur un site à plusieurs machines Ubuntu.

5/10/2014