Skip To Content

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

En este tema

Para actualizar la funcionalidad de la geodatabase, puede crear una instancia de ArcGIS Server 10.3.1 for Amazon Web Services (AWS), trasladar los datos a la nueva geodatabase y volver a publicar los servicios, o puede actualizar el software de ArcGIS en la instancia AWS existente y actualizar la geodatabase.

En las secciones siguientes se describen métodos para que la geodatabase esté en el estado más reciente posible y se indica cuando se utilizará cada método.

Crear una instancia ArcGIS 10.3.1 for AWS y trasladar los datos desde la antigua instancia

La forma más sencilla de obtener las últimas versiones de ArcGIS y PostgreSQL es crear una instancia de ArcGIS Server for AWS desde la última AMI (Amazon Machine Image), trasladar los datos y volver a publicar los servicios. Consulte Las AMI de ArcGIS Server para obtener información sobre qué versiones de software y sistema operativo se incluyen en las últimas AMI de ArcGIS Server.

Para obtener información sobre el movimiento de 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.

Si utiliza una instancia de ArcGIS Server 10 for AWS con datos en PostgreSQL, debe utilizar este método para actualizar la geodatabase. Además, si desea trasladar los datos a una instancia de Amazon Relational Database Service (RDS) for PostgreSQL, debe crear nuevas instancias, trasladar los datos y volver a publicar los servicios.

Pasar de una instancia 10 a una instancia 10.3.1

En ArcGIS 10, existía una 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.3.1, ArcGIS Server (Linux) con PostgreSQL AMI ejecuta Ubuntu Linux y, opcionalmente, puede contener un clúster de bases de datos PostgreSQL 9.3.4. No se puede pasar directamente de una base de datos de PostgreSQL en Windows a otra en Linux; por tanto, al migrar a ArcGIS 10.3.1 Server for AWS, desde ArcGIS 10 Server for AWS, es necesario mover o recargar los datos.

Pasar de una instancia 10.1 o 10.2.x a una instancia 10.3.1

La versión de PostgreSQL incluida en las AMI de ArcGIS Server AMIs ha cambiado con el tiempo. La tabla siguiente enumera las versiones de PostgreSQL incluidas con cada AMI de Linux.

ArcGIS Server (Linux) con PostgreSQL AMIVersión de PostgreSQL incluida

ArcGIS 10.1

9.05

ArcGIS 10.2

9.013

ArcGIS 10.2.1 y 10.2.2

9.2.4

ArcGIS 10.3

9.3.4

ArcGIS 10.3.1

9.3.6

Si desea utilizar PostgreSQL 9.3.6, puede trasladar los datos a ArcGIS Server 10.3.1 for AWS.

Actualizar el software de ArcGIS en la instancia de AWS existente y actualizar la geodatabase

Puede instalar la última versión de ArcGIS Server en la instancia existente, actualizar la geodatabase en PostgreSQL y seguir utilizando los datos y servicios existentes si la versión de ArcGIS Server que instala es compatible con la versión de PostgreSQL en su instancia. No obstante, tenga en cuenta que esto significa que el sistema operativo y el resto del software de la instancia permanecen en la versión en que estaban cuando creó la instancia. Por ejemplo, si creó la instancia desde una AMI de ArcGIS Server 10.2.2 for AWS, seguirá utilizando una base de datos PostgreSQL 9.2.4 en un sistema operativo Ubuntu 12.04.

Si la versión de PostgreSQL existente en su instancia no es compatible con la nueva versión de ArcGIS Server, también tiene que actualizar PostgreSQL a una versión compatible. Por ejemplo, si ha iniciado una instancia de ArcGIS 10.2 y desea actualizar a ArcGIS 10.3.1 for Server en dicha instancia, también debe actualizar PostgreSQL a una versión compatible.

En las dos secciones siguientes se explica cómo actualizar una geodatabase en PostgreSQL en una instancia de ArcGIS Server para AWS. (Estas instrucciones no se aplican a geodatabases de Amazon RDS for PostgreSQL).

Actualizar ArcGIS Server en una instancia de ArcGIS Server for AWS existente y actualizar geodatabases en SITEHOST

Si desea actualizar una instancia de ArcGIS Server for AWS, siga los pasos de esta sección para actualizar las geodatabases en PostgreSQL que residen en la misma instancia que ArcGIS Server (SITEHOST).

Actualice ArcGIS for Server, mueva el nuevo archivo st_geometry.so al directorio lib de PostgreSQL, detenga ArcGIS Server, ejecute un script en Python para actualizar cada geodatabase y reinicie ArcGIS Server.

  1. Instalar la última versión de ArcGIS for Server en la instancia de AWS.
  2. Antes de actualizar las geodatabases, debe realizar copias de seguridad de las mismas. La forma más sencilla de hacerlo es hacer una copia de seguridad de Cloud Builder en su sitio (si ha creado el sitio con Cloud Builder) o crear una instantánea del volumen de EBS que contiene los datos. Si desea crear una instantánea del volumen de EBS, consulte la documentación de Amazon Web Services para ver las instrucciones.
  3. Asimismo, antes de llevar a cabo la actualización, debe copiar el archivo st_geometry.so desde /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 en /usr/lib/postgresql/<postgresql version>/lib.
    1. El archivo st_geometry.so es propiedad de la raíz; por tanto, después de conectar a la instancia de Amazon Web Services SITEHOST como ubuntu, cambie los usuarios a la raíz:
      sudo su -
      Nota:

      Tenga en cuenta que no puede conectarse como el usuario arcgis y cambiar al usuario raíz.

    2. Antes de copiar el nuevo archivo, renombre el antiguo.
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    3. Copie el nuevo archivo st_geometry.so.
      cp /arcgis/server/DatabaseSupport/PostgreSQL/Linux64/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib
    4. Cambie los permisos en el archivo st_geometry.so para que otros usuarios puedan leerlo y ejecutarlo.
      chmod 755 /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so
  4. Cambie al usuario arcgis.
    su - arcgis
  5. Abra un editor de texto para crear el script en Python de actualización.

    vi upgrade.py

  6. Copie el siguiente script en un editor de texto.

    Modifique el script 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","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")

    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 el script 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.

    La información se registra en el archivo GDBUpgrade.log en /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#> Si se produce un error durante la actualización.

  10. Ejecute lo siguiente en Python para asegurarse de que la geodatabase se ha actualizado. Sustituya /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 el script y vuelva a ejecutarlo para cada una de las geodatabases que necesite actualizar.
  13. Si necesita actualizar PostgreSQL a una versión compatible, cree una copia de seguridad de la base de datos y continúe actualizando PostgreSQL. La forma de actualizar PostgreSQL depende de las versiones de PostgreSQL a las que actualice. Consulte la documentación de PostgreSQL para obtener instrucciones.
  14. Una vez actualizadas todas las geodatabases (y bases de datos en caso necesario), reinicie ArcGIS Server.

    /arcgis/server/startserver.sh

Si tiene un sitio de varios equipos, realice el paso 11 de Aplicar una actualización de ArcGIS a un sitio de varios equipos Ubuntu.

Actualizar ArcGIS Server en una instancia de ArcGIS Server for AWS existente y actualizar geodatabases que están en su propia instancia de AWS (EGDBHOST)

Si desea actualizar una instancia de ArcGIS Server for AWS, siga los pasos de esta sección para actualizar las geodatabases en PostgreSQL que están en su propia instancia de AWS (EGDBHOST) dedicada.

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 un script en Python desde SITEHOST para actualizar cada una de las geodatabases y reinicie ArcGIS Server.

  1. Instalar la versión nueva de ArcGIS for Server en la 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. Si desea crear una instantánea del volumen de EBS, consulte las instrucciones en la documentación de Amazon Web Services.
  3. Asimismo, antes de llevar a cabo la actualización, debe copiar el archivo st_geometry.so desde /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 en /usr/lib/postgresql/<postgresql version>/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 sesión en EGDBHOST como ubuntu y cambie al usuario raíz.
      sudo su -
      mv /usr/lib/postgresql/<postgresql version>/lib/st_geometry.so /usr/lib/postgresql/<postgresql version>/lib/st_geometryOLD.so
    2. Debe mover el archivo st_geometry.so de /arcgis/server/DatabaseSupport/PostgreSQL/Linux64 en SITEHOST a /usr/lib/postgresql/<postgresql version>/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 en /usr/lib/postgresql/<postgresql version>/lib.
      cp /gisdata/st_geometry.so /usr/lib/postgresql/<postgresql version>/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/<postgresql version>/lib/st_geometry.so
  4. Inicie una sesión en SITEHOST como usuario arcgis.
  5. Abra un editor de texto para crear el script en Python de actualización.

    Por ejemplo:

    vi upgrade.py

  6. Copie el siguiente script en un editor de texto.

    Modifique el script 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","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")

    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 el script 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 se produce un error durante la actualización, la información se registra en el archivo GDBUpgrade.log en /arcgis/server/framework/runtime/.wine/drive_c/users/arcgis/LocalAppData/ESRI/Server<#>.

  10. Para asegurarse de que la geodatabase se ha actualizado, abra Python y ejecute el script 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 el script upgrade.py y vuelva a ejecutarlo para cada una de las geodatabases que necesite actualizar.
  13. Si necesita actualizar PostgreSQL a una versión compatible, cree una copia de seguridad de la base de datos y continúe actualizando PostgreSQL. La forma de actualizar PostgreSQL depende de las versiones de PostgreSQL a las que actualice. Consulte la documentación de PostgreSQL para obtener instrucciones.
  14. Una vez actualizadas todas las geodatabases (y bases de datos en caso necesario), reinicie ArcGIS Server.

    /arcgis/server/startserver.sh

Si tiene un sitio de varios equipos, realice el paso 11 de Aplicar una actualización de ArcGIS a un sitio de varios equipos Ubuntu.