Gå til innhold

Bytte LEADER-noden

I noen vedlikeholdstilfeller kan det være nyttig å bytte LEADER-noden i PostgreSQL-clusteret for å utføre operasjoner på den.

Før du kan bytte LEADER-noden, må du identifisere den gjeldende LEADER-noden i PostgreSQL-clusteret og deretter koble til den som root.
Når du er koblet til LEADER-noden som root, kjører du en kommando som den følgende for å utløse en umiddelbar omkobling:

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

Erstatt PSQL_NODE med navnet på noden som skal bli LEADER.

Feil

Hvis kommandoen mislykkes, er det mulig at følgende innstillinger ikke er tatt i bruk: innstillinger for 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 å gjøre noden PSQL_1 til LEADER.
Først må du derfor koble til som root til noden PSQL_3, som er den nåværende LEADER.
Når du er koblet til, utløser følgende kommando en umiddelbar omkobling av LEADER til noden PSQL_1:

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

Endringen av topologien er deretter synlig og kontrollerbar:

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