Aller au contenu

Basculer le nœud LEADER

Dans certains cas de maintenance, il peut être intéressant de basculer le nœud LEADER du cluster PostgreSQL pour y réaliser ensuite des opérations.

Avant de pouvoir modifier le nœud LEADER, veuillez identifier l'actuel nœud LEADER du cluster PostgreSQL pour ensuite vous y connecter en tant que root.
Une fois connecté en tant que root au nœud LEADER, exécutez une commande similaire à la suivante pour déclencher un basculement immédiat :

1
patronictl -c /etc/patroni/config.yml failover --candidate PSQL_NODE --force

Remplacez PSQL_NODE par le nom du nœud qui deviendra LEADER.

Echec

En cas de dysfonctionnement de la commande, il est possible que les paramétrages suivants n'aient pas été appliqués : paramétrages pour le fonctionnement de la commande patronictl.

Exemple

Pour le cluster PostgreSQL suivant :

1
2
3
4
5
6
7
+ Cluster: 15-cleanroomvault5 ------+---------+---------+----+-----------+
| Member           | Host           | Role    | State   | TL | Lag in MB |
+------------------+----------------+---------+---------+----+-----------+
| PSQL_3           | psql_3         | Leader  | running | 2  |           |
| + PSQL_1         | psql_1         | Replica | running | 2  | 0         |
| + PSQL_2         | psql_2         | Replica | running | 2  | 0         |
+------------------+----------------+---------+---------+----+-----------+

L'objectif est de passer le nœud PSQL_1 en tant que LEADER.
Il est donc d'abord nécessaire de se connecter en tant que root au nœud PSQL_3 qui est l'actuel LEADER.
Une fois connecté, l'exécution de la commande suivante permet la bascule immédiate du LEADER vers le nœud PSQL_1 :

1
patronictl -c /etc/patroni/config.yml failover --candidate PSQL_1 --force

La modification de la topologie est ensuite visible et vérifiable :

1
2
3
4
5
6
7
+ Cluster: 15-cleanroomvault5 ------+---------+---------+----+-----------+
| Member           | Host           | Role    | State   | TL | Lag in MB |
+------------------+----------------+---------+---------+----+-----------+
| PSQL_1           | psql_1         | Leader  | running | 3  |           |
| + PSQL_3         | psql_3         | Replica | running | 3  | 0         |
| + PSQL_2         | psql_2         | Replica | running | 3  | 0         |
+------------------+----------------+---------+---------+----+-----------+