BarMan

Da GazziNet.
Vai alla navigazione Vai alla ricerca

!! ATTENZIONE !!

https://www.scaleway.com/en/docs/tutorials/back-up-postgresql-barman/ù

Per chissà quale motivo nelle installazioni di Postgres CentOs 6 e PostGres non c'e' nel path i binari di alcuni componenti di postgres. Per inserire il path in modo "corretto":

echo "pathmunge /usr/pgsql-15/bin" > /etc/profile.d/postgres.sh


  1. .bash_profile
  2. Get the aliases and functions

if [ -f ~/.bashrc ]; then

       . ~/.bashrc

fi

  1. User specific environment and startup programs
PATH=$PATH:$HOME/bin

export PATH


SULLA MACCHINA DB:

Utente di accesso al Management DB:

createuser -s barman

Utente di streaming replication con autorizzazione Replication:

createuser --replication streaming_barman

Da psql:

ALTER USER barman WITH PASSWORD 'orione';
ALTER USER streaming_barman WITH PASSWORD 'orione';


Esempio di HBA:

   TYPE DATABASE USER ADDRESS METHOD
host    all             barman          10.240.1.252/32            password

host    replication     streaming_barman 10.240.1.252/32           password


SULLA MACCHINA BARMAN:

# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Disable the built-in PostgreSQL module:
sudo dnf -qy module disable postgresql <-- Importante!! 
# Install PostgreSQL:
sudo dnf install -y postgresql15
sudo dnf install -y barman
Consiglio: Aggiungere nelle prime installazioni nel file host l'ip del server con risoluzione di pg :D
10.240.1.114 SRV01

Test di accesso all'utente di DB:

psql -c 'SELECT version()' -U barman -h SRV01 postgres
Esempio di Output:
"" PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17), 64-bit ""


Test di accesso all'utente di replication:

psql -U streaming_barman -h SRV01 -c "IDENTIFY_SYSTEM" replication=1

Esempio di Output:

"" psql: FATALE:  il numero di richieste di connessioni di standby supera max_wal_senders (attualmente 0) ""

Attivazione automatica della connessione nel profilo di barman:

vi .pgpass 
*:*:*:barman:orione
*:*:*:streaming_barman:orione
chmod 0600 .pgpass

SULLA MACCHINA POSTGRES - da Utente Postgres:

Modificare su postgresql.conf

""Numero di massimo di connessioni per lo streaming di backup/replication""

max_wal_senders = 2

""Numero di Replication Slot necessari minimi""

max_replication_slots = 2

""Attivazione della replicazione""

wal_level = replica


SULLA MACCHINA DI BACKUP:

File di configurazione di connessione: Es.: /etc/barman.d/pg.conf

[SRV01]
description = "My First Server"
conninfo = host=pg  port=5432 user=barman dbname=postgres
backup_method = postgres
streaming_conninfo = host=hostsrv01  port=5432 user=streaming_barman dbname=postgres
streaming_archiver = on
slot_name = barman

Inizializzione slot da farsi la prima volta di installazione di Barman:

barman receive-wal --create-slot SRV01

Attivazione Reciver (sono da avere attivi ogni volta che si fà un task di backup):

barman cron

Lancio del primo get del Recevice dei WAL:

barman receive-wal SRV01 & 

Lancio del backup:

barman backup SRV01

Utility per forzare il checkpoint.

barman switch-xlog --force SRV01


Restore esempio di lancio:

barman recover main 20161117ET220002 /tmp