Μετάβαση στο περιεχόμενο

Εναλλαγή του κόμβου LEADER

Σε ορισμένες περιπτώσεις συντήρησης, μπορεί να είναι χρήσιμο να γίνει εναλλαγή του κόμβου LEADER του συμπλέγματος PostgreSQL, ώστε να εκτελεστούν ενέργειες σε αυτόν.

Για να μπορέσετε να αλλάξετε τον κόμβο LEADER, προσδιορίστε τον τρέχοντα κόμβο LEADER του συμπλέγματος PostgreSQL και, στη συνέχεια, συνδεθείτε σε αυτόν ως root.
Αφού συνδεθείτε ως root στον κόμβο LEADER, εκτελέστε μια εντολή παρόμοια με την ακόλουθη για να ξεκινήσει άμεσα η εναλλαγή:

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

Αντικαταστήστε το PSQL_NODE με το όνομα του κόμβου που θα γίνει LEADER.

Αποτυχία

Εάν η εντολή αποτύχει, ενδέχεται να μην έχουν εφαρμοστεί οι ακόλουθες ρυθμίσεις: ρυθμίσεις για το εργαλείο patronictl.

Παράδειγμα

Για το ακόλουθο σύμπλεγμα 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         |
+------------------+----------------+---------+---------+----+-----------+

Ο στόχος είναι να μεταβεί ο κόμβος PSQL_1 σε ρόλο LEADER.
Επομένως, πρέπει πρώτα να συνδεθείτε ως root στον κόμβο PSQL_3, ο οποίος είναι ο τρέχων LEADER.
Μετά τη σύνδεση, η εκτέλεση της ακόλουθης εντολής πραγματοποιεί την άμεση μεταφορά του ρόλου LEADER στον κόμβο PSQL_1:

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

Η αλλαγή της τοπολογίας είναι στη συνέχεια ορατή και επαληθεύσιμη:

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