Actualización de geodatabases de PostgreSQL en ArcGIS Server for Amazon Web Services

En las secciones siguientes se describen tres escenarios de actualización de geodatabases:

Mover datos de una instancia de EGDB de ArcGIS 10 for Amazon Web Services a una instancia de ArcGIS Server 10.1 for Amazon Web Services

En ArcGIS 10, existía una Amazon Machine Image (AMI) de geodatabase corporativa independiente que contenía un clúster de base de datos de PostgreSQL 8.3.8 en Windows. En ArcGIS 10.1, ArcGIS for Server 10.1 (Linux) con AMI de PostgreSQL ejecuta Ubuntu Linux y puede contener opcionalmente un clúster de base de datos de PostgreSQL 9.0.5. No puede mover directamente de una base de datos de PostgreSQL en Windows a otra en Linux. Por lo tanto, al migrar a ArcGIS Server 10.1 for Amazon Web Services, debe mover o volver a cargar los datos. Consulte la sección "Opciones para la transferencia de datos a la nube" en Estrategias para la transferencia de datos a Amazon Web Services.

Aplicación de Service Packs o parches y actualización de geodatabases en la instancia de EC2 de ArcGIS for Server (SITEHOST)

Sus geodatabases de PostgreSQL en instancias de Amazon Web Services (AWS) deben actualizarse después de aplicar un Service Pack o un parcha al software en su instancia de AWS. Los pasos de esta sección le indican la forma de actualizar geodatabases en PostgreSQL que residen en la misma instancia que ArcGIS for Server (SITEHOST).

Actualice ArcGIS for Server, mueva el nuevo archivo st_geometry.so al directorio lib de PostgreSQL, detenga ArcGIS for Server, ejecute una secuencia de comandos en Python para actualizar cada geodatabase y, a continuación, reinicie ArcGIS for Server.

Pasos:
  1. Ya debe tener instalado el Service Pack o el parche para ArcGIS for Server en su instancia de AWS.

    Consulte Aplicación de un Service Pack en un sitio de un solo equipo o Aplicación de un Service Pack en un sitio de varios equipos para obtener instrucciones si no ha instalado todavía el software.

  2. Antes de actualizar las geodatabases, debe realizar copias de seguridad de las mismas. La forma más fácil de realizar este proceso es crear una instantánea del volumen de EBS que contiene los datos.
  3. Además, antes de realizar la actualización, debe copiar el archivo st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 a /usr/lib/postgresql/9.0/lib.
    1. El archivo st_geometry.so es propiedad de la raíz. Por lo tanto, después de conectar a la instancia de SITEHOST de Amazon Web Services como ubuntu, tiene que cambiar los usuarios a la raíz:
      sudo su -
      
    2. Antes de copiar el nuevo archivo, renombre el antiguo.
      mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
      
    3. Copie el nuevo archivo st_geometry.so.
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/9.0/lib
      
    4. Cambie los permisos en el archivo st_geometry.so para que otros usuarios puedan leerlo y ejecutarlo.
      chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
      
  4. Cambie al usuario arcgis.
    su - arcgis
    
  5. Abra un editor de texto para crear la secuencia de comandos en Python de actualización.

    Por ejemplo:

    vi upgrade.py
    

  6. Copie la siguiente secuencia de comandos en un editor de texto.

    Modifique la secuencia de comandos para usar información específica en su sitio, por ejemplo el nombre de instancia, la contraseña de sde, el nombre y la ubicación del archivo de conexión, y el nombre de la base de datos.

    #Import arcpy module
    import arcpy
    
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESSQL","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")
    

    Consulte Crear conexión de base de datos y Actualizar Geodatabase para obtener más información sobre la sintaxis de la herramienta.

  7. Guarde el archivo y cierre el editor de texto.
  8. Detenga ArcGIS Server.
    /arcgis/server/stopserver.sh
    
  9. Ejecute la secuencia de comandos en Python.

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

    Es probable que vea varias observaciones acerca de las referencias de tipo. Puede hacer caso omiso de ellas; no indican ningún error en la actualización.

    Si la actualización no se realiza correctamente, la información se escribe en GDBUpgrade.log en /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server10.1.

  10. Para asegurarse de que la geodatabase se haya actualizado, ejecute la secuencia de comandos siguiente en Python, sustituyendo /tmp/egdb_connection.sde por el nombre y la ubicación de su archivo de conexión.

    Primero, abra un símbolo del sistema con arcpy.

    cd /arcgis/server/tools
    ./python
    

    Use isCurrent para determinar si la geodatabase está actualizada a la versión actual.

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

    Si print isCurrent devuelve True, la geodatabase está actualizada.

  11. Para salir del símbolo del sistema con arcpy, escriba quit().
  12. Modifique la secuencia de comandos y vuelva a ejecutarla para cada una de las geodatabases que necesite actualizar.
  13. Una vez actualizadas todas las geodatabases, reinicie ArcGIS for Server.

    /arcgis/server/startserver.sh
    

Si tiene un sitio de varios equipos, continúe con el paso 13 en Aplicación de un Service Pack en un sitio de varios equipos de Ubuntu.

Aplicación de Service Packs o parches y actualización de geodatabases en EGDBHOST

Los pasos de esta sección le indican la forma de actualizar geodatabases en PostgreSQL que residen en su propia instancia de Amazon EC2 dedicada (EGDBHOST).

Actualice ArcGIS for Server en SITEHOST, mueva el nuevo archivo st_geometry.so de SITEHOST al directorio lib de PostgreSQL en EGDBHOST, detenga ArcGIS Server, ejecute una secuencia de comandos en Python desde SITEHOST para actualizar cada una de las geodatabases y, a continuación, reinicie ArcGIS for Server.

Pasos:
  1. Instale el Service Pack o el parche para ArcGIS for Server en su instancia de AWS.
  2. Antes de actualizar las geodatabases, debe realizar copias de seguridad de las mismas. La forma más fácil de realizar este proceso es crear una instantánea del volumen de EBS que contiene los datos.
  3. Además, antes de realizar la actualización, debe copiar el archivo st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 a /usr/lib/postgresql/9.0/lib.
    1. Antes de copiar el nuevo archivo, renombre el antiguo en EGDBHOST. Dado que el archivo st_geometry.so es propiedad del usuario raíz, inicie una sesión en EGDBHOST como ubuntu y, a continuación, cambie al usuario raíz.
      sudo su -
      
      mv /usr/lib/postgresql/9.0/lib/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometryOLD.so
      
    2. Debe mover el archivo st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 en SITEHOST a /usr/lib/postgresql/9.0/lib en EGDBHOST.

      Dado que los dos directorios de origen y destino en las diferentes instancias no son accesibles por el mismo usuario, inicie una sesión en SITEHOST como usuario arcgis y copie el archivo en directorio gisdata en EGDBHOST.

      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /net/EGDBHOST/gisdata/st_geometry.so
      
    3. Inicie una sesión en EGDBHOST como ubuntu.
    4. Cambie al usuario raíz.
      sudo su -
      
    5. Copie el archivo st_geometry.so de gisdata a /usr/lib/postgresql/9.0/lib.
      cp /gisdata/st_geometry.so /usr/lib/postgresql/9.0/lib/st_geometry.so
      
    6. Cambie los permisos en el archivo st_geometry.so para que otros usuarios puedan leerlo y ejecutarlo.
      chmod 755 /usr/lib/postgresql/9.0/lib/st_geometry.so
      
  4. Inicie una sesión en SITEHOST como usuario arcgis.
  5. Abra un editor de texto para crear la secuencia de comandos en Python de actualización.

    Por ejemplo:

    vi upgrade.py
    

  6. Copie la siguiente secuencia de comandos en un editor de texto.

    Modifique la secuencia de comandos para usar información específica en su sitio, por ejemplo el nombre de instancia, la contraseña de sde, el nombre y la ubicación del archivo de conexión, y el nombre de la base de datos.

    #Import arcpy module
    import arcpy
    
    # Create connection file
    arcpy.CreateDatabaseConnection_management("/tmp","egdb_connection.sde","POSTGRESSQL","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")
    

    Consulte Crear conexión de base de datos y Actualizar Geodatabase para obtener más información sobre la sintaxis de la herramienta.

  7. Guarde el archivo y cierre el editor de texto.
  8. Detenga ArcGIS Server.
    /arcgis/server/stopserver.sh
    
  9. Ejecute la secuencia de comandos en Python.

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

    Es probable que vea varias observaciones acerca de las referencias de tipo. Puede hacer caso omiso de esos mensajes.

    Si la actualización no se realiza correctamente, la información se escribe en GDBUpgrade.log en /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server10.1.

  10. Para asegurarse de que la geodatabase se haya actualizado, abra Python y ejecute la secuencia de comandos siguiente, sustituyendo /tmp/egdb_connection.sde por el nombre y la ubicación de su archivo de conexión:

    Primero, abra un símbolo del sistema con arcpy.

    cd /arcgis/server/tools
    ./python
    

    Use isCurrent para determinar si la geodatabase está actualizada a la versión actual.

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

    Si print isCurrent devuelve True, la geodatabase está actualizada.

  11. Para salir del símbolo del sistema con arcpy, escriba quit().
  12. Modifique la secuencia de comandos upgrade.py y vuelva a ejecutarla para cada una de las geodatabases que necesite actualizar.
  13. Una vez actualizadas todas las geodatabases, reinicie ArcGIS for Server.

    /arcgis/server/startserver.sh
    

Si tiene un sitio de varios equipos, continúe con el paso 13 en Aplicación de un Service Pack en un sitio de varios equipos de Ubuntu.

9/11/2013