Keri sisuni

Teenuse patroni tõrkeotsing

Teave

Kogu protseduur tuleb läbi viia kasutajana root. Oma privileegide tõstmiseks root-i tasemele saate kasutada käsku su -.

Hoiatus

Selle protseduuri järgimiseks peate olema teinud patronictl-i lisakonfiguratsioonid.

patroni on PostgreSQL-i kõrge saadavuse orkestreerija. See automatiseerib PostgreSQL-i klastri halduse, tegeledes intsidendi korral liidri valimise, tõrkesiirde ja sõlmede sünkroonimisega.

CyberElements Bastion lahenduse PostgreSQL-i klastris tugineb patroni klastri oleku salvestamisel ja jagamisel teenusele etcd. See jälgib pidevalt PostgreSQL-i eksemplaride olekut ja tagab, et igal ajahetkel on liidriks määratud ainult üks sõlm.

Kui liidersõlm tõrgub, korraldab patroni hajutatud konfiguratsioonisalve etcd kaudu automaatselt valimise, et edutada uus liider ja hoida teenus saadaval.

Seega sõltub patroni teenusest etcd ega saa korralikult töötada, kui etcd ei tööta.

Sõlme sünkroonist väljumine

PostgreSQL-i klastri sõlm võib mõnikord sünkroonist välja minna. See on nähtav käsu patronictl -c /etc/patroni/config.yml topology väljundis:

1
2
3
4
5
6
7
+ Cluster: 15-cleanroomvault5 ------+---------+---------+----+-----------+
| Member           | Host           | Role    | State   | TL | Lag in MB |
+------------------+----------------+---------+---------+----+-----------+
| PSQL_3           | psql_3         | Leader  | running | 3  |           |
| + PSQL_1         | psql_1         | Replica | running | 2  |       230 |
| + PSQL_2         | psql_2         | Replica | running | 3  |         0 |
+------------------+----------------+---------+---------+----+-----------+

Veerus TL on näha, et sõlm PSQL_1 pole enam samal TL-ajateljel kui teised. Klastri toimimiseks peavad kõik sõlmed olema samal TL-ajateljel: erinevus näitab, et üks sõlmedest on sünkroonist väljas.

Sel juhul käivitage sünkroonist väljas olevas sõlmes järgmine käsk:

1
patronictl -c /etc/patroni/config.yml reinit 15-cleanroomvault5 <MEMBER_PATRONI>

Siin on <MEMBER_PATRONI> sünkroonist väljas oleva sõlme nimi, nagu see on näidatud topoloogia veerus Member.

Kui mitu sõlme on sünkroonist väljas, sünkroonige uuesti kõik need, mis pole kõrgeimal TL-ajateljel.

Hoiatus

Kui sünkroonist väljas olev sõlm on Leader-sõlm, võivad andmed kaduda. Seda ei tohiks kunagi juhtuda: Leader-sõlm peaks olema kõrgeimal TL-ajateljel.

Näide

Ülaltoodud käsu patronictl -c /etc/patroni/config.yml topology väljundis on sõlm PSQL_1 sünkroonist väljas. Selle uuesti sünkroonimiseks kasutage järgmist käsku:

1
patronictl -c /etc/patroni/config.yml reinit 15-cleanroomvault5 PSQL_1

Logs

Kogu protseduur tugineb teenuse patroni logidele, mille saate alloleva käsuga:

1
journalctl -u patroni

Näpunäide

Logide reaalajas jälgimiseks lisage käsule suvand -f:

1
journalctl -fu patroni

Teave

Teenuse patroni logid on saadaval ka failis /var/log/syslog.

Tõrkelogide selgitused

ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)

Kui etcd ei tööta või pole kättesaadav, võib patroni kirjutada järgmised tõrked:

1
2
3
4
5
6
7
8
patroni[1812916]: 2026-04-17 15:23:51,431 INFO: Retrying on https://<PSQL_NODE_NAME>:2379
patroni[1812916]: 2026-04-17 15:23:51,434 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Max retries exceeded with url: /v3/lease/keepalive (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8924a49fd0>: Failed to establish a new connection: [Errno 111] Connection refused'))")
patroni[1812916]: 2026-04-17 15:23:51,434 INFO: Reconnection allowed, looking for another server.
patroni[1812916]: 2026-04-17 15:23:51,434 INFO: Retrying on https://<PSQL_NODE_NAME>:2379
patroni[1812916]: 2026-04-17 15:23:51,438 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Max retries exceeded with url: /v3/lease/keepalive (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8924a48c50>: Failed to establish a new connection: [Errno 111] Connection refused'))")
patroni[1812916]: 2026-04-17 15:23:51,438 INFO: Reconnection allowed, looking for another server.
patroni[1812916]: 2026-04-17 15:23:53,940 ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: ReadTimeoutError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379): Read timed out. (read timeout=2.0772262712319693)")
patroni[1812916]: 2026-04-17 15:23:53,940 INFO: Reconnection allowed, looking for another server.
<PSQL_NODE_NAME>

PostgreSQL-i klastri ühe sõlme nimi.

Sel juhul peate tegema teenuse etcd tõrkeotsingu.