Skip to main content

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