Comment sauvegarder PostgreSQL on Ubuntu Serveur 20.04 avec Bacula
L'installation et la configuration initiale de Bacula sont décrites ici : Comment sauvegarder Ubuntu Serveur 20.04 avec Bacula. Dans ce didacticiel, nous allons ajouter des paramètres pour créer un PostgreSQL sauvegarde de la base de données.
Dans le Serverspace vous pouvez créer un serveur avec l'application déjà installée "PostgreSQL".
Tout d'abord, vous devez sauvegarder la base de données à l'aide de l'outil SGBD intégré, puis copier le fichier résultant. Bacula vous permet d'exécuter des scripts avant et après le processus de sauvegarde.
Étape 1 - Préparation et création de scripts
Commençons par créer un script pré-psql-backup.sh dans le dossier /etc/bacula/ qui fera le dump.
sudo nano /etc/bacula/pre-psql-backup.sh
Écrivez-y les commandes suivantes.
#!/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
Créons un script pour nettoyer le dossier temporaire.
sudo nano /etc/bacula/post-psql-backup.sh
Copiez-y les lignes suivantes.
#!/bin/bash
rm -f /opt/psql-backup/*
Rendons maintenant les scripts exécutables.
chmod 750 /etc/bacula/pre-psql-backup.sh
chmod 750 /etc/bacula/post-psql-backup.sh
Étape 2 - Configuration de Bacula
La section suivante décrira notre travail. Collez-le dans le fichier /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"
}
Maintenant, la section décrivant le dossier cible pour la sauvegarde.
FileSet {
Name = "PSQL"
Include {
Options {
signature = MD5
}
File = /opt/psql-backup/
}
}
Enregistrez et fermez le fichier, puis redémarrez Bacula pour appliquer les modifications.
systemctl reload bacula-dir
Maintenant, le script créera des vidages et Bacula les écrira dans le stockage 'LocalSD' selon le calendrier 'LocalDaily'.