Opzioni di barman per il ripristino di un database PostgreSQL

La documentazione di barman non è sempre semplice da consultare, quindi aggioungo qui alcune note relative al comando di ripristino.

Creazione del file system per il ripristino, su macchina nomehost, aggiornato con tutti i WAL: barman recover --remote-ssh-command 'ssh postgres@nomehost' nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà aggiornato con tutti i WAL scaricati all’avvio di postgres. Il comando per scaricare i WAL dal server barman è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --get-wal nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà configurato come standby (che rimarrà sempre in recovery, attendendo sempre nuovi WAL). Il comando per la configurazione è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --standby-mode nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, che verrà configurato come standby e messo in attesa per potervvi accedere. Il comando per la configurazione è nel file configurato come standby. Il comando per la configurazione è nel file recovery.conf: barman recover --remote-ssh-command 'ssh postgres@nomehost' --standby-mode --target-action pause nome-master backup-id /path/destinazione/su/nomehost

Creazione del file system per il ripristino, su macchina nomehost, aggiornato con tutti i WAL fino a data e orario specifico. La directory barman_wal conterrà i WAL necessari, il file recovery.conf i comandi necessari per il PITR: barman recover --remote-ssh-command 'ssh postgres@nomehost' --target-time '2022-06-15 16:58' nome-master backup-id /path/destinazione/su/nomehost

Per fare poi ripartire il database in modalità standby, nel caso che la versione di postgresql sia 12 o superiore, il file recovery.conf non viene usato e, anzi, blocca l’avvio di postgresql. I comandi vanni presi da quel file e integrati nel file postgresql.conf principale (dettagli qui).

Altra cosa importante: per fare ripartire postgresql (12 o superiore) in modalità recovery deve esistere il file chiamato standby.signal. In caso negativo, il cluster non partirà in maniera recovery, ma si aprirà normalmente alle connessioni in lettura e scrittura.