Sari la conținut

Comutarea nodului LEADER

În unele cazuri de mentenanță, poate fi util să comutați nodul LEADER al clusterului PostgreSQL pentru a putea efectua operațiuni pe acesta.

Înainte de a putea schimba nodul LEADER, identificați nodul LEADER actual al clusterului PostgreSQL, apoi conectați-vă la acesta ca root.
Odată conectat ca root la nodul LEADER, executați o comandă similară celei de mai jos pentru a declanșa comutarea imediată:

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

Înlocuiți PSQL_NODE cu numele nodului care va deveni LEADER.

Eșec

Dacă comanda eșuează, este posibil ca următoarele setări să nu fi fost aplicate: setări pentru patronictl.

Exemplu

Pentru clusterul PostgreSQL următor:

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

Obiectivul este de a trece nodul PSQL_1 în rol de LEADER.
Prin urmare, este necesar mai întâi să vă conectați ca root la nodul PSQL_3, care este LEADER-ul actual.
Odată conectat, executarea următoarei comenzi permite comutarea imediată a LEADER-ului către nodul PSQL_1:

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

Modificarea topologiei este apoi vizibilă și verificabilă:

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