A patroni hibaelhárítása¶
Információ
A teljes eljárást root felhasználóként kell végrehajtani. A jogosultságai root szintre emeléséhez használhatja a su - parancsot.
Figyelmeztetés
Az eljárás követéséhez el kell végeznie a patronictl kiegészítő konfigurációit.
A patroni a PostgreSQL magas rendelkezésre állását biztosító vezénylő eszköz. Automatizálja a PostgreSQL-fürt kezelését azzal, hogy incidens esetén gondoskodik a vezető csomópont megválasztásáról, a feladatátvételről és a csomópontok szinkronizálásáról.
A CyberElements Bastion PostgreSQL-fürtjében a patroni az etcd szolgáltatásra támaszkodik a fürt állapotának tárolásához és megosztásához. Folyamatosan figyeli a PostgreSQL-példányok állapotát, és gondoskodik arról, hogy egyszerre mindig csak egy csomópont legyen vezetőként kijelölve.
Ha a vezető csomópont meghibásodik, a patroni az etcd elosztott konfigurációs tárolón keresztül automatikusan választást vezényel le, hogy új vezetőt léptessen elő, és fenntartsa a szolgáltatás rendelkezésre állását.
A patroni ezért függ az etcd szolgáltatástól, és nem tud megfelelően működni, ha az etcd nem működik.
Csomópont szinkronizációjának elvesztése¶
A PostgreSQL-fürt egyik csomópontja időnként kieshet a szinkronból. Ez a patronictl -c /etc/patroni/config.yml topology parancs kimenetében látható:
1 2 3 4 5 6 7 | |
A TL oszlopban a PSQL_1 csomópont már nem ugyanazon a TL értéken van, mint a többi. A fürt működéséhez minden csomópontnak ugyanazon a TL értéken kell lennie: az eltérés azt jelzi, hogy az egyik csomópont kiesett a szinkronból.
Ebben az esetben futtassa a következő parancsot a szinkronból kiesett csomóponton:
1 | |
Itt a <MEMBER_PATRONI> a szinkronból kiesett csomópont neve, ahogyan a topológia Member oszlopában látható.
Ha több csomópont is kiesett a szinkronból, szinkronizálja újra mindazokat, amelyek nem a legmagasabb TL értéken vannak.
Figyelmeztetés
Ha a szinkronból kiesett csomópont a Leader csomópont, adatvesztés történhet. Ennek soha nem szabadna előfordulnia: a Leader csomópontnak elvileg mindig a legmagasabb TL értéken kell lennie.
Példa
A patronictl -c /etc/patroni/config.yml topology parancs fenti kimenetében a PSQL_1 csomópont kiesett a szinkronból. Az újraszinkronizálásához használja a következő parancsot:
1 | |
Logs¶
A teljes eljárás a patroni szolgáltatás naplóin alapul, amelyeket az alábbi paranccsal kérhet le:
1 | |
Tipp
A naplók valós idejű követéséhez adja hozzá a parancshoz a -f kapcsolót:
1 | |
Információ
A patroni naplói a /var/log/syslog fájlban is elérhetők.
Hibanaplók magyarázata¶
ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)
Ha az etcd nem működik vagy nem érhető el, a patroni a következő hibákat írhatja:
1 2 3 4 5 6 7 8 | |
<PSQL_NODE_NAME>-
A PostgreSQL-fürt egyik csomópontjának neve.
Ebben az esetben el kell végeznie az etcd hibaelhárítását.