Mover una geodatabase en PostgreSQL a ArcGIS for Server en AWS
En este tema
- Comprobar la configuración de variables personalizada
- Crear una copia de seguridad de una geodatabase de origen.
- Mover el archivo de copia de seguridad a un instancia de destino
- Preparar el clúster de base de datos de PostgreSQL de destino
- Restaurar base de datos
Es posible mover una geodatabase corporativa existente en PostgreSQL desde un servidor local a una instancia de ArcGIS Server on Amazon Web Services, o bien de una instancia de ArcGIS Server on Amazon Web Services a otra utilizando un archivo de copia de seguridad.
Para ello, cree una copia de seguridad de la geodatabase de origen, transfiera el archivo de copia de seguridad a la instancia de ArcGIS Server on Amazon Web Services de destino, cree una base de datos y los roles de inicio de sesión en el clúster de base de datos de PostgreSQL y, por último, restablezca la base de datos.
Comprobar la configuración de variables personalizada
Agregue al nuevo clúster de base de datos todas las opciones de configuración personalizadas que tenía en el clúster de base de datos original y que desee conservar. Las opciones de configuración se guardan en el archivo postgresql.conf. Haga una copia de este archivo y muévalo al clúster de base de datos de destino en la instancia de ArcGIS Server on Amazon Web Services.
Encontrará el archivo postgresql.conf de ArcGIS Server on Amazon Web Services en /data de la unidad montada.
Crear una copia de seguridad de una geodatabase de origen.
Podrá crear una copia de seguridad de la base de datos para transferir los archivos de datos a una instancia de ArcGIS Server on Amazon Web Services.
Utilice la aplicación PostgreSQL pg_dump para crear un archivo de volcado.
- Conéctese al servidor en el que esté guardada la geodatabase de origen.
- Ejecute el comando pg_dump en la línea de comandos del sistema operativo 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 la aplicación pg_dump.
Mover el archivo de copia de seguridad a un instancia de destino
Existen varias maneras de transferir el archivo de comando a la instancia de destino. Consulte las diferentes opciones de movimiento de datos en Estrategias para la transferencia de datos a Amazon Web Services. Si fuese necesario, podrá utilizar el mismo método para mover el archivo postgresql.conf.
Asegúrese de colocar el archivo de volcado en el volumen de almacenamiento de bloque elástico (EBS).
Una vez que el archivo de volcado se encuentre en la instancia de ArcGIS Server 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
Deberá tener una base de datos en la cual restaurar el archivo de volcado. Además, en el clúster de la base de datos de destino deberán existir los roles de inicio de sesión propietarios de los datos de base de datos de origen.
Colocar el archivo de configuración
Si está utilizando un archivo postgresql.conf personalizado, haga una copia de seguridad del archivo postgresql.conf predeterminado en la instancia de destino, y coloque el archivo personalizado en /data de la unidad montada.
Crear bases de datos vacías
La base de datos que vaya a crear deberá tener el mismo nombre que la base de datos del clúster de base de datos de PostgreSQL original de la cual haya creado el archivo de volcado. Los nombres de las bases de datos deben ser únicos dentro de un clúster. Esto implica que, si está moviendo bases de datos desde una instancia de ArcGIS Server on Amazon Web Services a otra, debe cumplirse uno de los siguientes requisitos:
- La base de datos de origen no puede ser una de las bases de datos predeterminada (egdb o de geodatos).
o
- Deberá borrar la base de datos predeterminada del mismo nombre del clúster de base de datos de PostgreSQL destino para poder restaurar el archivo de copia de seguridad transferido.
- Inicie sesión en la instancia ArcGIS Server on Amazon Web Services de destino como usuario raíz.
- Abra una línea de comandos e inicie una sesión de psql como usuario sde.
- Cree una base de datos en la cual 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 la plantilla de base de datos de PostGIS, utilice la misma plantilla para la base de datos de destino.
- Podrá guardar la nueva base de datos en un espacio de tabla existente, o bien crear un espacio nuevo específicamente para esta base de datos. Si desea utilizar un nuevo espacio de tabla, deberá crearlo 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 de grupo
El clúster de base de datos de destino debe contener los roles de inicio de sesión de cada usuario propietario de datos de la base de datos de origen.
Si va a mover una base de datos desde una instancia de ArcGIS Server on Amazon Web Services a otra y está utilizando los roles de inicio de sesión predeterminado, no necesitará crear nuevos roles en el clúster de base de datos de destino. No obstante, si los datos de la base de datos de origen son propiedad de roles de inicio de sesión no predeterminados, deberá crear los roles de inicio de sesión con los mismos nombres en el clúster de base de datos de PostgreSQL. Del mismo modo, si desea utilizar inicios de sesión de grupo en la base de datos de destino, deberá volver a crearlos y otorgarles roles de inicio de sesión.
Consulte en la documentación de PostgreSQL información más detallada acerca de cómo crear roles de grupo y de inicio de sesión y agregar inicios de sesión a grupos.
Restaurar base de datos
Utilice la aplicación PostgreSQL pg_restore para restaurar la base de datos.
Precaución:
Deberá ejecutar el comando pg_restore dos veces: una para restaurar el esquema público (que contiene la tabla del sistema sde_spatial_references), y la segunda para restaurar el resto de los datos. De lo contrario, no se restaurará ninguno de los datos espaciales.
- Conéctese a la instancia de ArcGIS Server on Amazon Web Services destino (la misma a la que haya movido el archivo de volcado).
- Abra una línea de comandos e inicie una sesión de psql como usuario sde.
- Ejecute el comando pg_restore en la línea de comandos del sistema operativo para restaurar el esquema público en la base de datos.
Para poder ejecutar el comando pg_restore, el usuario sde debe ser un superusuario de PostgreSQL.
pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump Password:
- Ejecute por segunda vez el comando pg_restore para restaurar la base de datos íntegra.
pg_restore -U sde -d spdb /data/spdbbu11012.dump Password:
Consulte la documentación de PostgreSQL para obtener más información sobre la aplicación pg_restore.
Una vez restaurada 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 guardan esta información. Por ejemplo, podría consultar la vista de catálogo pg_tables para ver todas las tablas de la base de datos y el esquema en el que están guardadas.
Establecer variables de la base de datos
A continuación podrá utilizar la información de variables de la base de datos personalizada, que habrá recogido previamente, para configurar las variables de la nueva base de datos.
Este procedimiento explica cómo agregar y configurar la variable search_path. Este mismo procedimiento básico se utiliza para configurar los valores de las demás variables de la base de datos.
- Conéctese a la nueva base de datos desde psql como usuario sde.
- En la ventana psql, configure la ruta de búsqueda de la base de datos para que incluya el esquema de sde.
SET search_path TO "$user",public,sde;