Gå til indholdet

Skift af LEADER-noden

I visse vedligeholdelsestilfælde kan det være nyttigt at skifte PostgreSQL-clusterets LEADER-node for at kunne udføre handlinger på den.

Før du kan skifte LEADER-noden, skal du identificere den aktuelle LEADER-node i PostgreSQL-clusteret og derefter forbinde til den som root.
Når du er forbundet som root til LEADER-noden, skal du køre en kommando svarende til følgende for at udløse et øjeblikkeligt skift:

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

Erstat PSQL_NODE med navnet på den node, der skal blive LEADER.

Fejl

Hvis kommandoen fejler, er det muligt, at følgende indstillinger ikke er blevet anvendt: indstillinger til patronictl.

Eksempel

For følgende PostgreSQL-cluster:

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         |
+------------------+----------------+---------+---------+----+-----------+

Målet er at gøre noden PSQL_1 til LEADER.
Det er derfor først nødvendigt at forbinde som root til noden PSQL_3, som er den aktuelle LEADER.
Når du er forbundet, muliggør udførelsen af følgende kommando et øjeblikkeligt skift af LEADER til noden PSQL_1:

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

Ændringen af topologien er derefter synlig og kan verificeres:

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         |
+------------------+----------------+---------+---------+----+-----------+