Può capitare che una replica che rimane per troppo tempo disconnessa da un Master non riesca a riallinearsi ("Fall behind") per cui non contenga più dati validi.
In questo caso è necessario riallinearla al master. Questo si può fare in due modi:
1.replicando la procedura descritta nella Configurazione Master - Replica descritta nel topic precedente
2.creando un backup di base da mandare sul server replica per usarlo come punto di partenza: in questo capitolo descriveremo quest'ultima operazione, poichè in questo caso si può operare con il server master funzionante direttamente dal server replica.
•Portarsi sul server replica
•Stoppare il server
•assicurarsi che sul postgresql.conf del master siano presenti e valorizzati parametri:
omax_wal_senders=6
ohost_standby=off
ofull_page_writes=on
•rinominare la vecchia cartella DATA (cartella dati, è la cartella in cui viene richiesto l'avvio del servizio, vedi riga di comando di start del sevizio) in modo tale che non venga sovrascritta
•creare una nuova cartella in cui verranno scaricati i dati di backup dal master, per es:
c:\postgresql\standby
•dalla cartella "bin" del server replica lanciare il comando:
opg_basebackup.exe --host=nnn.nnn.nnn.nnn --port=NNNN -D full_path_nuova_cartella -P --username=postgres --xlog-method=stream
dove:
nnn.nnn.nnn.nnn = IP del server master
NNNN = porta del server master
odando INVIO il comando partirà chiedendo la password dell'utente postgres, (solitamente "2011!postgre")
•al termine del processo nella cartella full_path_nuova_cartella indicata nel percorso -D ... troverò un server "quasi" pronto a partire
•salvarsi una copia di full_path_nuova_cartella
•copiare i files:
postgresql.conf, pg_hba.conf, recovery.conf
nella cartella full_path_nuova_cartella
•rinominare full_path_nuova_cartella come cartella DATA di avvio
•verificare che i diritti della cartella DATA siano validi (controllo completo per l'utente "network services" su windows
•startare il servizio: se parte il gioco è fatto, altrimenti consulare o i log nella cartella pg_log o gli eventi applicazione su server Windows o il messages su linux.