Ir para o conteúdo

Comutar o nó LEADER

Em alguns casos de manutenção, pode ser útil comutar o nó LEADER do cluster PostgreSQL para poder realizar operações nele.

Antes de poder alterar o nó LEADER, identifique o nó LEADER atual do cluster PostgreSQL e ligue-se a ele como root.
Uma vez ligado como root ao nó LEADER, execute um comando semelhante ao seguinte para desencadear uma comutação imediata:

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

Substitua PSQL_NODE pelo nome do nó que passará a ser LEADER.

Falha

Se o comando falhar, é possível que as definições seguintes não tenham sido aplicadas: definições do patronictl.

Exemplo

Para o cluster PostgreSQL seguinte:

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

O objetivo é passar o nó PSQL_1 a LEADER.
É, portanto, necessário ligar-se primeiro como root ao nó PSQL_3, que é o LEADER atual.
Uma vez ligado, a execução do comando seguinte permite a comutação imediata do LEADER para o nó PSQL_1:

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

A modificação da topologia é depois visível e verificável:

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