Cómo hacer una copia de seguridad PostgreSQL on Ubuntu Servidor 20.04 con Bacula
La instalación y configuración inicial de Bacula se describe aquí: Cómo hacer una copia de seguridad Ubuntu Servidor 20.04 con Bacula. En este tutorial, agregaremos configuraciones para crear un PostgreSQL copia de seguridad de la base de datos.
En Serverspace usted puede crear un servidor con la aplicación ya instalada "PostgreSQL".
Primero, debe hacer una copia de seguridad de la base de datos utilizando la herramienta DBMS incorporada y luego copiar el archivo resultante. Bacula le permite ejecutar scripts antes y después del proceso de copia de seguridad.
Paso 1: preparación y creación de guiones
Primero, creemos un script pre-psql-backup.sh en la carpeta /etc/bacula/ que hará el volcado.
sudo nano /etc/bacula/pre-psql-backup.sh
Escriba los siguientes comandos en él.
#!/bin/bash
# Clearing, creating, and configuring a folder for the dump
rm -rf /opt/psql-backup/
mkdir -p /opt/psql-backup/
chown -R postgres:postgres /opt/psql-backup/
# Backup all PostgreSQL databases in SQL format
sudo -u postgres pg_dumpall --clean --inserts --verbose --file=/opt/psql-backup/$(date +%Y-%m-%d_%H:%M).sql 2>/var/log/bacula-pg_dump.log
Vamos a crear un script para limpiar la carpeta temporal.
sudo nano /etc/bacula/post-psql-backup.sh
Copie las siguientes líneas allí.
#!/bin/bash
rm -f /opt/psql-backup/*
Ahora hagamos que los scripts sean ejecutables.
chmod 750 /etc/bacula/pre-psql-backup.sh
chmod 750 /etc/bacula/post-psql-backup.sh
Paso 2: configuración de Bacula
La siguiente sección describirá nuestro Trabajo. Péguelo en el archivo /etc/bacula/bacula-dir.conf.
Job {
Name = "PSQL-backup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "PSQL"
Schedule = "LocalDaily"
Storage = LocalSD
Write Bootstrap = "/var/lib/bacula/PSQLBackup.bsr"
# Executing scripts
ClientRunBeforeJob = "/etc/bacula/pre-psql-backup.sh"
ClientRunAfterJob = "/etc/bacula/post-psql-backup.sh"
}
Ahora la sección que describe la carpeta de destino para la copia de seguridad.
FileSet {
Name = "PSQL"
Include {
Options {
signature = MD5
}
File = /opt/psql-backup/
}
}
Guarde y cierre el archivo, luego reinicie Bacula para aplicar los cambios.
systemctl reload bacula-dir
Ahora el script hará volcados y Bañula los escribirá en el almacenamiento 'LocalSD' de acuerdo con el programa 'LocalDaily'.