Utilización de scripts para realizar copias de seguridad y restauraciones de la base de datos de PostgreSQL
Están disponibles los siguientes scripts para realizar la copia de seguridad de la base de datos de PostgreQL. Al ejecutar los scripts, no se tiene que detener la base de datos para realizar una copia de seguridad.
- postgresql_backup_pre.sh: Este script coloca la base de datos en modo de copia de seguridad.
- postgresql_snapshot_post.sh: Este script elimina la base de datos del modo de copia de seguridad.
- postgresql_settings: Se trata de un archivo de configuración donde es posible que sea necesario actualizar las variables de PostgreSQL.
- postgresql_backup_post.sh: Este script actualiza el registro sobre el estado de la copia de seguridad.
Requisitos previos
Antes de iniciar la copia de seguridad, asegúrese de realizar los siguientes pasos:
- El nivel de WAL se establece en archivo de archivado (o hot_standby)
- archive_mode está activado
- Se debe configurar archive_command para especificar la ubicación del archivo de archivado.
Nota: Para aplicar los valores de configuración, reinicie el servidor después de configurar estos valores en el archivo postgresql.conf.
Los siguientes comandos sirven para comprobar el estado del modo de archivo de archivado después del reinicio:
- show archive_mode
- show archive_command
- show WAL level
Aplicación de scripts
Siga estos pasos:
- Extraiga el archivo LinuxPostgres.zip que contiene los siguientes cuatro archivos: postgresql_backup_pre.sh, postgresql_snapshot_post.sh, postgresql_settings y postgresql_backup_post.sh
- Copie los archivos de una instantánea o copia de seguridad previa/posterior en la siguiente ruta del servidor de copia de seguridad de Linux: /opt/Arcserve/d2dserver/usr/prepost.
- Copie postgresql_settings en la ruta del origen /root/backup.
- Asegúrese de comprobar postgresql_settings para todos los valores configurados con las variables y realice modificaciones en los cambios necesarios según su entorno.
- Configure el plan desde la Consola de UDP y seleccione el nodo de PostgreSQL como origen.
-
- Confirme el estado de la copia de seguridad. Para conocer el estado de la copia de seguridad de PostgreSQL, consulte el archivo arcserve_postgresql_backup_${DATE}.log. Este archivo de registro se creará en el directorio definido por el usuario. Para obtener más información sobre la configuración del directorio, consulte el archivo postgresql_settings.
Restauración de la base de datos de PostgreSQL
Siga estos pasos:
- Detenga el servidor de la base de datos.
- Para restaurar la ubicación original, realice los siguientes pasos:
- Suprima archivos y directorios de la carpeta /data actual.
- Realice una restauración de toda la carpeta /data.
- Suprima los archivos de las siguientes carpetas después de la finalización de la restauración desde la carpeta /data:
- pg_dynshmem/
- pg_notify/
- pg_serial/
- pg_snapshots/
- pg_stat_tmp/
- pg_subtrans/
- pg_internal.init
- Vaya a la carpeta que se ha configurado para el archivado de WAL y realice los siguientes pasos:
- Suprima los archivos que se encuentran en el directorio pg_wal restaurado, que contiene la información relacionada con las transacciones que se han realizado durante la copia de seguridad.
- Ahora, copie los archivos desde la ubicación de archivo de archivado definida por el usuario en la carpeta de pg_wal, para la recuperación de datos y la consistencia de los datos en el momento.
- Inicie el servidor de la base de datos.
Restauración en una ubicación alternativa en el mismo servidor
- Detenga el servidor de la base de datos.
- Ejecute PGDATA utilizando la configuración new_data_directory_path.
- Inicialice la base de datos recientemente creada utliizando el comando initdb.
- Suprima archivos y directorios de la carpeta /data actual.
- Realice una restauración de toda la carpeta /data.
- Suprima los archivos de las siguientes carpetas después de la finalización de la restauración desde la carpeta /data:
- pg_dynshmem/
- pg_notify/
- pg_serial/
- pg_snapshots/
- pg_stat_tmp/
- pg_subtrans/
- pg_internal.init
- Vaya a la carpeta configurada para el archivado de WAL y, a continuación, realice los siguientes pasos:
- Suprima los archivos que se encuentran en el directorio pg_wal restaurado, que contiene la información relacionada con las transacciones que se han realizado durante la copia de seguridad.
- Ahora, copie los archivos desde la ubicación de archivo de archivado definida por el usuario en la carpeta de pg_wal, para la recuperación de datos y la consistencia de los datos en el momento.
- Inicie el servidor de la base de datos.
- Nota: Asegúrese de que el inicio de la base de datos se realiza en la sesión en la que se ha actualizado PGDATA.
Limitaciones
Los scripts anteriores no ayudarán a realizar la copia de seguridad si la base de datos de PostgreSQL está configurada con un puerto no predeterminado. Los scripts solo funcionan con el número de puerto predeterminado 5432.
Como solución alternativa, utilice las recomendaciones siguientes para modificar de forma manual los scripts postgresql_backup_pre.sh y postgresql_snapshot_post.sh:
- postgresql_backup_pre.sh:
- Original: sudo -u ${USERNAME} -H -- psql -c "SELECT pg_start_backup('Arcserve UDP backup - ${DATE} $(timestamp)', true)" >> ${LOG} 2>&1
- Modificado: sudo -u ${USERNAME} -H -- psql -p 5432 -c "SELECT pg_start_backup('Arcserve UDP backup - ${DATE} $(timestamp)', true)" >> ${LOG} 2>&1
- postgresql_snapshot_post.sh:
- Original: sudo -u ${USERNAME} -H -- psql -c "SELECT pg_stop_backup()" >> ${LOG} 2>&1
- Modificado: sudo -u ${USERNAME} -H -- psql -p 5432 -c "SELECT pg_stop_backup()" >> ${LOG} 2>&1
Copyright © 2014-2021, Arcserve. Todos los derechos reservados.
|
|