Guide des technologies

Installer et configurer repmgr pour PostgreSQL

5 min read PostgreSQL Mis à jour 26 Sep 2025
Installer repmgr pour PostgreSQL
Installer repmgr pour PostgreSQL

Ce guide explique comment compiler et installer repmgr à partir des sources, cloner une base master vers un standby, configurer repmgr.conf et vérifier la réplication. Suivez les étapes sur le serveur master et le serveur esclave (slave) et exécutez les commandes en root ou en utilisateur postgres quand demandé.

Important : exécutez les commandes côté master et côté esclave selon les indications. Sauvegardez toujours les données avant d’opérer sur des bases en production.

Intentions et variantes recherchées

  • Installation et compilation de repmgr
  • Clonage master → standby
  • Configuration repmgr.conf
  • Vérification et tests de réplication
  • Alternatives : paquets binaires, pg_basebackup

Pré-requis rapides

  • Accès root ou accès à l’utilisateur postgres
  • PostgreSQL installé et en écoute
  • Outils de compilation (make, gcc) et dépendances système
  • Réseau entre master et esclave configuré (résolution des noms pgmaster / pgslave)

Étape 5. Installer repmgr depuis les sources sur master et esclave

Téléchargez l’archive repmgr (v1.1.0 dans cet exemple) vers /tmp :

wget http://projects.2ndquadrant.it/sites/default/files/repmgr-1.1.0.tar.gz -O /tmp/repmgr-1.1.0.tar.gz

Avant de compiler repmgr avec PostgreSQL, installez les paquets nécessaires :

zypper install make gcc postgresql-devel libxslt-devel pam-devel libopenssl-devel krb5-devel

Capture d'écran de l'installation des paquets requis pour compiler repmgr sur SLES

Décompressez et compilez repmgr, puis installez-le :

cd /tmp
tar xzf repmgr-1.1.0.tar.gz
cd repmgr-1.1.0
make USE_PGXS=1
make USE_PGXS=1 install

Compilation et installation de repmgr depuis les sources

Vérifiez l’installation :

repmgr --version
repmgrd --version

Assurez-vous que repmgr est installé correctement sur le master et sur l’esclave. Le prochain chapitre clone la base master vers l’esclave : ne passez pas à l’étape suivante tant que repmgr n’est pas opérationnel sur les deux nœuds.

Étape 6. Cloner la base master vers l’esclave (esclave uniquement)

Exécutez ceci sur le serveur esclave uniquement :

su - postgres
repmgr -D /var/lib/pgsql/data -d pgbench -p 5432 -R postgres --verbose standby clone pgmaster

Cette commande réalise un clone du master (pgmaster) vers le répertoire de données du serveur esclave (/var/lib/pgsql/data). Vous verrez des logs détaillés sur la console pendant le transfert.

Journal de clonage du master vers l'esclave montrant la progression du STREAM/rsync et la configuration du standby

Ensuite, démarrez PostgreSQL sur l’esclave :

/etc/init.d/postgresql start

Notes :

  • L’option -D indique le chemin du data_directory. Adaptez-la si votre installation utilise un chemin différent.
  • L’option -d spécifie la base (ici pgbench). Remplacez par votre base réelle si nécessaire.

Étape 7. Créer le fichier de configuration repmgr sur master et esclave

Sur le master, créez le répertoire repmgr et le fichier /var/lib/pgsql/repmgr/repmgr.conf avec ce contenu :

cluster=test
node=1
conninfo='host=pgmaster user=postgres dbname=pgbench'

Sur l’esclave, créez /var/lib/pgsql/repmgr/repmgr.conf avec :

cluster=test
node=2
conninfo='host=pgslave user=postgres dbname=pgbench'

Conseils :

  • Protégez ce fichier (permissions 600) si vous stockez des credentials.
  • Préférez une connexion par ident/local ou via un utilisateur repmgr dédié (voir section checklist).

Étape 8. Enregistrer master et esclave et lancer le monitoring

Sur le master, enregistrez le nœud master :

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose master register

Sur l’esclave, enregistrez le nœud standby :

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose standby register

Vérifiez l’état de réplication depuis n’importe quel nœud :

psql pgbench -c 'select * from repmgr_test.repl_status'

Dans un environnement de test, l’esclave peut être à ~1 seconde de retard sur le master, selon la charge et le réseau.

Test de réplication simple

Sur le master :

psql pgbench -c "create table test ( test varchar(30));"
psql pgbench -c "insert into test values ( 'test123');"

Puis, sur le client pointant l’esclave :

psql -h pgslave pgbench -c "select * from test"

Résultat de la requête sur l'esclave montrant la ligne répliquée

Bingo — la réplication fonctionne.


Améliorations recommandées pour la production

  1. Créer un utilisateur repmgr dédié plutôt que d’utiliser postgres. Limitez ses droits au minimum requis.
  2. Appliquer le correctif connu si vous utilisez une version ancienne de repmgr. Exemple : correctif upstream référencé sur GitHub (vérifiez la compatibilité avec votre version).
  3. Documentez la procédure de promotion du standby (promotion manuelle ou automatique). Testez le basculement en simulation avant production.
  4. Considérez des alternatives pour le clonage initial : pg_basebackup, rsync + base backup, ou paquets binaires repmgr fournis par votre distribution si disponibles.
  5. Lisez le README et la documentation officielle repmgr pour options avancées et paramètres de tuning.
  6. Mettez en place des sauvegardes régulières et des alertes de monitoring.

Contre‑exemples et quand cela peut échouer

  • Réseau bloqué ou DNS mal configuré entre master et esclave : le clonage et la réplication échouent.
  • Versions PostgreSQL incompatibles : repmgr peut refuser de cloner ou provoquer des erreurs d’exécution.
  • Permissions incorrectes sur data_directory : PostgreSQL ne démarre pas.
  • Utilisation de l’utilisateur postgres pour des opérations automatisées pose un risque de sécurité.

Approches alternatives

  • Installer repmgr via les paquets de la distribution (plus simple, mises à jour facilitées).
  • Utiliser pg_basebackup pour le clonage initial, puis configurer recovery.conf/standby.signal selon la version de PostgreSQL.
  • Pour des architectures très critiques, envisager des solutions de clustering/hot standby managées.

Checklist par rôle

Administrateur système

  • Vérifier paquets système et dépendances
  • Ouvrir les ports PostgreSQL entre nœuds
  • Synchroniser les heures (NTP)

DBA

  • Créer l’utilisateur repmgr et appliquer les droits
  • Valider la version PostgreSQL
  • Exécuter les tests de basculement

Opérations

  • Automatiser le démarrage de repmgrd (systemd/unit file)
  • Configurer les alertes de réplication

Mini-méthodologie de clonage et d’enregistrement (résumé rapide)

  1. Installer repmgr sur master et esclave.
  2. Cloner le master vers l’esclave avec repmgr standby clone.
  3. Démarrer PostgreSQL sur l’esclave.
  4. Créer repmgr.conf sur chaque nœud.
  5. Enregistrer chaque nœud (master register, standby register).
  6. Vérifier l’état et tester la réplication par des écritures simples.

Glossaire (une ligne)

  • repmgr : outil de gestion/reprise pour la réplication PostgreSQL master/standby.
  • master : nœud primaire acceptant les écritures.
  • standby/esclave : nœud en lecture seule répliquant le master.

Récapitulatif et prochaines étapes

  • Vous avez compilé et installé repmgr, cloné la base master vers un standby, configuré repmgr.conf et vérifié la réplication.
  • Pour aller plus loin : sécuriser les connexions, automatiser repmgrd via systemd, tester les scénarios de promotion, et documenter une procédure de rollback.

Merci d’avoir suivi ce tutoriel. Pour tout doute, consultez la documentation officielle et testez les procédures en environnement de préproduction.

Liens de référence

Auteur
Édition

Matériaux similaires

Récupérer photos iCloud supprimées définitivement
Récupération de données

Récupérer photos iCloud supprimées définitivement

Kickstart : automatiser Fedora/CentOS
Linux

Kickstart : automatiser Fedora/CentOS

Masquer le score Snapchat — guide rapide
Réseaux sociaux

Masquer le score Snapchat — guide rapide

Partager l'écran dans Microsoft Teams
Guides

Partager l'écran dans Microsoft Teams

Qui est connecté sur Windows Server ?
Administration

Qui est connecté sur Windows Server ?

Installer un APK sur Android — guide sûr
Android

Installer un APK sur Android — guide sûr