Skip To Content

Mover una geodatabase en PostgreSQL entre instancias de AWS

Puede mover una geodatabase corporativa existente en PostgreSQL desde un servidor local a una instancia de ArcGIS Enterprise on Amazon Web Services o desde una instancia de ArcGIS Enterprise on Amazon Web Services a otra con un archivo de copia de seguridad.

Para ello, tanto los clústeres de base de datos de PostgreSQL de origen y destino deben ser compatibles para la transferencia de bases de datos con un archivo pg_dump. Consulte la documentación de PostgreSQL para averiguar si las versiones que utiliza son compatibles.

Si sus versiones de PostgreSQL son compatibles, cree una copia de seguridad de la geodatabase de origen, transfiera el archivo de copia de seguridad a la instancia de ArcGIS Enterprise on Amazon Web Services de destino, cree una geodatabase y roles de inicio de sesión en el clúster de base de datos de PostgreSQL de destino y, por último, restaure la base de datos.

Nota:

Este flujo de trabajo no se aplica a Amazon Relational Database Services para PostgreSQL.

Compruebe la configuración variable personalizada

Si quiere conservar algún tipo de configuración personalizada del clúster de base de datos de origen, debe agregarla al nuevo clúster de base de datos. Los ajustes de configuración se almacenan en el archivo postgresql.conf. Cree una copia de este archivo y muévalo al clúster de base de datos de destino en su instancia de ArcGIS Enterprise on Amazon Web Services.

El archivo de postgresql.conf en la instancia de ArcGIS Enterprise on Amazon Web Services se encuentra en /data en la unidad montada.

Crear una copia de seguridad de la geodatabase de origen

Cree una copia de seguridad de la base de datos para transferir los archivos de datos a una instancia de ArcGIS Enterprise on Amazon Web Services.

Utilice el comando pg_dumpde PostgreSQL para crear un archivo de volcado.

  1. Conéctese al servidor donde se almacena la geodatabase de origen.
  2. Ejecute el comando pg_dump como una ventana de comando de shell para crear una copia de seguridad de la base de datos.
    pg_dump -U postgres -F c > /data/spdbbu11012.dump

    Consulte la documentación de PostgreSQL para obtener más información sobre el comando pg_dump.

Mover el archivo de copia de seguridad a la instancia de destino

Hay varias maneras de transferir el archivo de volcado a la instancia de destino. Consulte Estrategias para la transferencia de datos a Amazon Web Services para ver distintas opciones de mover datos. Puede utilizar el mismo método para mover el archivo postgresql.conf, si fuese necesario.

Asegúrese de colocar el archivo de volcado en el volumen de Elastic Block Store (EBS).

Una vez que el archivo de volcado esté en la instancia de ArcGIS Enterprise on Amazon Web Services de destino, prepare el clúster de base de datos de PostgreSQL.

Preparar el clúster de base de datos de PostgreSQL de destino

Debe contar con una base de datos en la que restaurar el archivo de volcado. Además, todos los roles de inicio de sesión que posean datos en la base de datos de origen deben existir en el clúster de base de datos de destino.

Colocar el archivo de configuración

Si está utilizando un archivo postgresql.conf personalizado, realice una copia de seguridad del archivo postgresql.conf predeterminado en la instancia de destino y coloque el archivo personalizado de /data en la unidad montada.

Crear una base de datos vacía

La base de datos que ha creado debe tener el mismo nombre que la base de datos del clúster de base de datos de PostgreSQL de origen para el que creó un archivo de volcado. Los nombres de las bases de datos deben ser únicos en un clúster de base de datos. Significa que si mueve bases de datos de un ArcGIS Enterprise on Amazon Web Services a otro, ocurrirá una de las siguientes situaciones:

  • Su base de datos de origen no puede tener el mismo nombre que la base de datos del clúster de base de datos de destino.

    o bien,

  • Debe eliminar la base de datos que tenga el mismo nombre del clúster de base de datos de PostgreSQL de destino antes de restaurar el archivo de copia de seguridad que se ha transferido.
  1. Inicie sesión en la instancia de EC2 de destino como usuario raíz.
  2. Abra un shell de comando e inicie sesión en psql como el usuario sde.
  3. Cree una base de datos en la que restaurará el archivo de volcado.

    Tenga en cuenta lo siguiente:

    • El nombre, propietario y codificación de la base de datos de destino deben ser los mismos que los de la base de datos de origen.
    • Si utilizó una plantilla de base de datos no predeterminada para la base de datos de origen, como una plantilla de base de datos PostGIS, utilice esa plantilla para la base de datos de destino.
    • Puede almacenar la nueva base de datos en un espacio de tablas existente o crear un nuevo espacio de tablas específicamente para esta base de datos. Si desea utilizar un nuevo espacio de tablas, créelo antes de crear la base de datos.

    CREATE DATABASE <dbname>
      WITH OWNER = sde
           TEMPLATE = template0
           ENCODING = '<encoding of db>'
           TABLESPACE = 
           LC_COLLATE = ''
           LC_CTYPE = ''
           CONNECTION LIMIT = -1;

Crear roles de inicio de sesión y grupo

El clúster de base de datos de destino debe contener roles de inicio de sesión para cada usuario que posea datos en la base de datos de origen.

Si está moviendo una base de datos de una instancia de ArcGIS Enterprise on Amazon Web Services a otra y utiliza los roles de inicio de sesión predeterminados, no es necesario que cree nuevos roles en el clúster de base de datos de destino. Sin embargo, si hay roles de inicio de sesión no predeterminados que poseen datos de la base de datos de origen, debe crear roles de inicio de sesión con los mismos nombres en el clúster de base de datos de PostgreSQL de destino. De igual modo, si desea usar inicios de sesión en grupo en la base de datos de destino, debe volver a crearlos y otorgarles roles de inicio de sesión.

Consulte la documentación de PostgreSQL para obtener más información sobre la creación de roles de grupo e inicio de sesión y sobre agregar inicios de sesión a grupos.

Restaurar una base de datos

Utilice el comando pg_restore de PostgreSQL para restaurar una base de datos.

Precaución:

Debe ejecutar el comando pg_restore dos veces: una para restaurar el esquema público (que contiene la tabla de sistema sde_spatial_references) y otra para restaurar el resto de los datos. Si no lo hace, no se restaurará ningún dato espacial.

  1. Conéctese a la instancia de ArcGIS Enterprise on Amazon Web Services de destino (a la que movió el archivo de volcado).
  2. Abra un shell de comando e inicie sesión en psql como el usuario sde.
  3. Ejecute el comando pg_restore en una ventana de comando de shell para restaurar el esquema público en la base de datos.

    El usuario sde debe ser un superusuario en PostgreSQL para ejecutar el comando pg_restore.

    pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump
    Password:
  4. Ejecute el comando pg_restore por segunda vez para restaurar toda la base de datos.
    pg_restore -U sde -d spdb /data/spdbbu11012.dump
    Password:

    Consulte la documentación de PostgreSQL para obtener más información sobre el comando pg_restore.

Después de restaurar la base de datos en el clúster de base de datos de PostgreSQL de destino, asegúrese de que los esquemas y tablas que esperaba estén presentes en la nueva base de datos. Para ello, consulte las vistas de catálogo de PostgreSQL que almacenan esta información. Por ejemplo, puede consultar las vistas de catálogo de pg_tables para ver todas las tablas de la base de datos y el esquema en el que están almacenadas.

Definir las variables de la base de datos

Ahora utilizará la información de la variable de base de datos personalizada que recopiló anteriormente para definir variables en la nueva base de datos.

Estos pasos le indican cómo agregar y definir la variable search_path. Se utilizan los mismos pasos básicos para definir valores personalizados para otras variables de base de datos.

  1. Conéctese a la nueva base de datos desde psql como el usuario sde.
  2. En la ventana psql, defina la ruta de búsqueda de la base de datos para que incluya el esquema sde.

    SET search_path TO "$user",public,sde;

Temas relacionados