26.05.2023

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
# Limpiar, crear y configurar una carpeta para el volcado
rm -rf /opt/psql-backup/
mkdir -p /opt/psql-backup/
chown -R postgres:postgres /opt/psql-backup/
# Copia de seguridad de todo PostgreSQL bases de datos en formato SQL
sudo -u postgres pg_dumpall --clean --inserts --verbose --file=/opt/psql-backup/$(fecha +%Y-%m-%d_%H:%M).sql 2>/var/ registro/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.

Trabajo {
Nombre = "Copia de seguridad de PSQL"
JobDefs = "Trabajo predeterminado"
Habilitado = si
Nivel = Completo
Conjunto de archivos = "PSQL"
Horario = "LocalDiario"
Almacenamiento = LocalSD
Escriba Bootstrap = "/var/lib/bacula/PSQLBackup.bsr"
# Ejecutando guiones
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.

conjunto de archivos {
Nombre = "PSQL"
Incluir {
Opciones {
signatura = MD5
}
Archivo = /opt/psql-backup/
}
}

Guarde y cierre el archivo, luego reinicie Bacula para aplicar los cambios.

systemctl recargar bacula-dir

Ahora el script hará volcados y Bañula los escribirá en el almacenamiento 'LocalSD' de acuerdo con el programa 'LocalDaily'.