Funciones sacar y restaurar respaldos en postgres

Clase 41 de 43Curso de Programación en Bash Shell

Resumen

¿Cómo implementar funciones de respaldo y restauración en Batch scripting?

En el fascinante mundo de la programación Batch, la capacidad de gestionar respaldos y restauraciones es esencial para garantizar la seguridad de nuestros datos. Exploraremos cómo implementar un script para realizar estas funciones en Ubuntu Server, usando PostgreSQL. ¡Sumérgete para aprender a salvaguardar y recuperar información estratégica de manera efectiva!

¿Cómo listar bases de datos para respaldos?

Listar las bases de datos es el primer paso vital antes de realizar cualquier respaldo. Asegúrate siempre de saber exactamente de qué bases de datos harás un respaldo, y para esto, sigue este flujo:

  1. Listar bases de datos: Usa el siguiente comando para listar todas las bases de datos disponibles.

    sudo -u postgres psql -c '\l'
    
  2. Elegir base de datos: Se usa un read para seleccionar la base deseada.

    read -p "Elegir la base de datos a respaldar: " bdd_respaldo
    

¿Cómo verificar el directorio de destino?

Antes de proceder con el respaldo, verifica la existencia del directorio de destino donde vas a guardar el archivo.

if [ -d "$1" ]; then
    echo "El directorio existe."
else
    echo "El directorio $1 no existe."
    exit 1
fi

¿Cómo realizar el proceso de respaldo?

Sigue los pasos para realizar un respaldo correctamente:

  1. Establecer permisos: Asegúrate de que el directorio tenga los permisos correctos.

    echo "Estableciendo permisos al directorio..."
    echo "your_password" | sudo -S chmod 755 "$1"
    
  2. Ejecutar pg_dump: Utiliza pg_dump para crear el respaldo en un archivo con un formato específico de nombre para identificar fácilmente la fecha del respaldo.

    fecha_actual=$(date +%Y%m%d)
    sudo -u postgres pg_dump -F c -f "$1/$bdd_respaldo-$fecha_actual.back" $bdd_respaldo
    

¿Cómo restaurar un respaldo?

La restauración es tan crítica como el respaldo, aquí aprenderás cómo hacerlo:

  1. Verificar la existencia de la base de datos destino:

    if sudo -u postgres psql -lqt | cut -d \| -f 1 | grep -qw "$bdd_destino"; then
        echo "La base de datos destino existe."
    else
        echo "Creando base de datos destino..."
        sudo -u postgres createdb "$bdd_destino"
    fi
    
  2. Restaurar utilizando pg_restore:

    sudo -u postgres pg_restore -d "$bdd_destino" "$1/$respaldo_a_restaurar"
    echo "Respaldo restaurado correctamente en la base de datos $bdd_destino."
    

Esta guía contempla los pasos necesarios para asegurar que tus respaldos y restauraciones se realicen eficazmente. Así que, ¡toma tu tiempo para implementar y experimentar! La práctica es crucial para perfeccionar tus habilidades en Batch scripting y administración de bases de datos.