PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 18/01/2019 10:11:52

null008
Membre

comment effectuer un basculement

bonjour a tous

Si j'ai de réplication entre un serveur Master et un serveur slave comment effectuer un basculement ?

Est ce que le faite d’arrêter le serveur Maître est suffisant pour avoir un basculement automatique ?

y'a il une commande magique que je peut le faire pour assurer un basculement

merci pour vos aides

Hors ligne

#2 18/01/2019 10:45:31

gleu
Administrateur

Re : comment effectuer un basculement

Si j'ai de réplication entre un serveur Master et un serveur slave comment effectuer un basculement ?

Est ce que le faite d’arrêter le serveur Maître est suffisant pour avoir un basculement automatique ?

Non, heureusement. À la moindre déconnexion réseau, paf, on basculerait. Non, vraiment pas.

y'a il une commande magique que je peut le faire pour assurer un basculement

Pour passer un esclave en maître autonome, il vous suffit d'utiliser l'action promote de pg_ctl ou de créer le fichier pointé par le paramètre trigger_file de l'esclave.


Guillaume.

Hors ligne

#3 18/01/2019 12:58:42

null008
Membre

Re : comment effectuer un basculement

Tu parle du Fichier recovery.conf ou le fichier recovery.done

Hors ligne

#4 18/01/2019 17:24:42

gleu
Administrateur

Re : comment effectuer un basculement

Le paramètre trigger_file se trouve dans le fichier recovery.conf (si j'ai bien compris la question, ce dont je ne suis absolument pas sûr).


Guillaume.

Hors ligne

#5 21/01/2019 10:54:53

yohmartin
Membre

Re : comment effectuer un basculement

Bonjour,

Postgresql ne fait pas de bascule automatique, il fait juste de la replication.
Il faut faire une bascule manuelle soit via la commande pg_ctl promote soit en créant le trigger file qui est dans le recovery.conf (qui devient recovery.done une fois la bascule effectuée).
Si vous souhaitez faire une bascule automatique, il faut utilise run outil tiers qui permet de la faire :
- repgmr
- paf
- patroni
- pg_keeper
...

Hors ligne

#6 07/02/2019 12:00:31

tholot
Membre

Re : comment effectuer un basculement

Bonjour,

Ok pour le basculement d'un standby en primaire. Je l'ai fait avec le recovery.conf auquel j'ai rajouté la commande trigger_file.

La création du fichier master.on (c'est le nom que j'ai choisi) provoque après redémarrage de postrgres sur le standby la possibilité d'écriture et le renomage en recovery.done du fcihier intial.

Pour faire l'inverse que faut-il vraiment faire?

J'avais naïvement pensé que supprimer le fichier master.on puis redémarrer postgres suffirait hors le fichier recovery.done ne redevient pas automatiquement recovery.conf?

d'avance merci pour votre éclairage.

Hors ligne

#7 07/02/2019 12:40:06

ruizsebastien
Membre

Re : comment effectuer un basculement

bonjour,

Il faut reconstruire le slave (ancien master) avec le nouveau master et refaire un recovery.conf (avec trigger file) sur le nouveau slave.


Cordialement,

Sébastien.

Hors ligne

#8 07/02/2019 16:29:30

tholot
Membre

Re : comment effectuer un basculement

Je reformule pour être sûr d'avoir bien compris :

Pour refaire un esclave à partir du nouveau maitre je suis obligé de refaire un rsync complet, or pour qu"il soit intégrè il faut que je stoppe le nouveau (master) au moins pour la synchronisation des fichiers à l'arrêt.

A l'étape des deux arrêts n'est-il pas plus simple de supprimer le trigger file sur le nouveau master et de renommer son recovery.done en recovery.conf ?

Ou s'agit-il d'une étape visant à assurer l'intégrité des données.

Hors ligne

#9 07/02/2019 16:38:20

ruizsebastien
Membre

Re : comment effectuer un basculement

non, non... inutile de faire un arrêt du master pour faire le resync. Il faut passer par un pg_start_backup/pg_stop_backup.
mais le mieux est de bien lire la doc :
https://docs.postgresql.fr/9.6/warm-standby.html
https://docs.postgresql.fr/9.6/warm-sta … lover.html


Cordialement,

Sébastien.

Hors ligne

Pied de page des forums