Como fazer backup do PostgreSQL no Ubuntu Server 20.04 com o Bacula
A instalação e a configuração inicial do Bacula são descritas aqui: Como fazer backup do Ubuntu Server 20.04 com o Bacula. Neste tutorial, adicionaremos configurações para criar um backup do banco de dados PostgreSQL.
Primeiro, você precisa fazer o backup do banco de dados usando a ferramenta DBMS integrada e, em seguida, copiar o arquivo resultante. O Bacula permite que você execute scripts antes e depois do processo de backup.
Passo 1 - Preparando e criando scripts
Primeiro, vamos criar um script pre-psql-backup.sh na pasta /etc/bacula/ que fará o dump.
sudo nano /etc/bacula/pre-psql-backup.sh
Escreva os seguintes comandos nele.
#!/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 criar um script para limpar a pasta temporária.
sudo nano /etc/bacula/post-psql-backup.sh
Copie as seguintes linhas para lá.
#!/bin/bash
rm -f /opt/psql-backup/*
Agora vamos tornar os scripts executáveis.
chmod 750 /etc/bacula/pre-psql-backup.sh
chmod 750 /etc/bacula/post-psql-backup.sh
Passo 2 - Configurando o Bacula
A próxima seção descreverá nosso Job. Cole-a no arquivo /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"
}
Agora a seção que descreve a pasta de destino para o backup.
FileSet {
Name = "PSQL"
Include {
Options {
signature = MD5
}
File = /opt/psql-backup/
}
}
Salve e feche o arquivo e, em seguida, reinicie o Bacula para aplicar as alterações.
systemctl reload bacula-dir
Agora o script criará dumps e o Bacula os gravará no armazenamento "LocalSD" de acordo com a programação "LocalDaily".


