Przejdź do treści

Przełączanie węzła LEADER

W niektórych przypadkach konserwacji może być przydatne przełączenie węzła LEADER clustera PostgreSQL, aby wykonać na nim operacje.

Zanim będziesz mógł zmienić węzeł LEADER, zidentyfikuj bieżący węzeł LEADER clustera PostgreSQL, a następnie połącz się z nim jako root.
Po połączeniu się jako root z węzłem LEADER wykonaj polecenie podobne do poniższego, aby wywołać natychmiastowe przełączenie:

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

Zamień PSQL_NODE na nazwę węzła, który zostanie LEADER.

Niepowodzenie

Jeśli polecenie się nie uda, możliwe, że nie zostały zastosowane następujące ustawienia: ustawienia dla patronictl.

Przykład

Dla następującego clustera PostgreSQL:

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

Celem jest ustawienie węzła PSQL_1 jako LEADER.
Trzeba więc najpierw połączyć się jako root z węzłem PSQL_3, który jest obecnym LEADER.
Po połączeniu wykonanie następującego polecenia powoduje natychmiastowe przełączenie LEADER na węzeł PSQL_1:

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

Zmiana topologii jest następnie widoczna i możliwa do sprawdzenia:

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