Cluster actif-passif 2 noeuds
Installer Postgresql sur les 2 noeuds (Installation de Postresql 16 sur Rocky linux 9).
Sur le noeud primaire
Créer un rôle réplication
CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'Telep@rt321';
Ajuster à la configuration de postgresql.conf :
cd /var/lib/pgsql/16/data/
vi postgresql.conf
listen_addresses = '10.0.0.22' # IP locale du serveur
wal_level = logical
wal_log_hints = on
Puis éditer pg_hba.conf. Ajouter à la fin :
host replication replica_user 10.0.0.29/32 md5
Relancer Postgresql
systemctl restart postgresql-16
Sur le noeud standby
Supprimer le répertoire DATA et dupliquer celui du noeud primaire:
systemctl stop postgresql-16
rm -rf /var/lib/pgsql/16/data/
pg_basebackup -h 10.0.0.22 -U replica_user -X stream -C -S replica_1 -v -R -W -D /var/lib/pgsql/16/data/
chown postgres.postgres -R /var/lib/pgsql/16
Editer /var/lib/pgsql/16/data/postgresql.conf et modifier "listen_addresses" pour y mettre l'IP locale
Relancer Postgresql
systemctl start postgresql-16
Sur le primary, vérifier si le replica est connecté
postgres=# SELECT client_addr, state
FROM pg_stat_replication;
client_addr | state
-------------+-----------
10.0.0.29 | streaming
(1 row)
Créer une base test et vérifier qu'elle apparaît bien côté standby
postgres=# CREATE DATABASE TESTREP;
# Puis sur les 2 noeuds lister les bases de données :
postgres=# \l