Otklanjanje poteškoća s uslugom patroni¶
Informacije
Cijeli postupak treba provesti kao root. Da biste povisili svoje povlastice na razinu root, možete upotrijebiti naredbu su -.
Upozorenje
Da biste slijedili ovaj postupak, morate prethodno provesti dodatne konfiguracije za patronictl.
patroni je orkestrator visoke dostupnosti za PostgreSQL. Automatizira upravljanje klasterom PostgreSQL tako što upravlja izborom vodećeg čvora, prebacivanjem u slučaju kvara i sinkronizacijom čvorova kada dođe do incidenta.
U klasteru PostgreSQL platforme CyberElements Bastion patroni se oslanja na etcd za pohranu i dijeljenje stanja klastera. Neprekidno nadzire stanje instanci PostgreSQL i osigurava da je u svakom trenutku samo jedan čvor određen kao vodeći.
Ako vodeći čvor zakaže, patroni automatski organizira izbor putem distribuiranog spremišta konfiguracije etcd kako bi promaknuo novi vodeći čvor i održao dostupnost usluge.
patroni stoga ovisi o etcd i ne može ispravno raditi ako etcd ne radi.
Gubitak sinkronizacije čvora¶
Čvor klastera PostgreSQL ponekad može izgubiti sinkronizaciju. To je vidljivo u izlazu naredbe patronictl -c /etc/patroni/config.yml topology:
1 2 3 4 5 6 7 | |
U stupcu TL čvor PSQL_1 više nije na istoj vrijednosti TL kao ostali. Da bi klaster radio, svi čvorovi moraju biti na istoj vrijednosti TL: razlika pokazuje da jedan od čvorova nije sinkroniziran.
U tom slučaju pokrenite sljedeću naredbu na nesinkroniziranom čvoru:
1 | |
Pri čemu je <MEMBER_PATRONI> naziv nesinkroniziranog čvora, kako je prikazan u stupcu Member topologije.
Ako nekoliko čvorova nije sinkronizirano, ponovno sinkronizirajte sve one koji nisu na najvišoj vrijednosti TL.
Upozorenje
Ako je nesinkronizirani čvor čvor Leader, podaci se mogu izgubiti. To se nikada ne bi smjelo dogoditi: očekuje se da čvor Leader bude na najvišoj vrijednosti TL.
Primjer
U gornjem izlazu naredbe patronictl -c /etc/patroni/config.yml topology čvor PSQL_1 nije sinkroniziran. Da biste ga ponovno sinkronizirali, upotrijebite sljedeću naredbu:
1 | |
Logs¶
Cijeli se postupak oslanja na zapisnike usluge patroni, koje dobivate naredbom u nastavku:
1 | |
Savjet
Da biste pratili zapisnike uživo, dodajte naredbi mogućnost -f:
1 | |
Informacije
Zapisnici usluge patroni dostupni su i u /var/log/syslog.
Objašnjenja zapisnika pogrešaka¶
ERROR: Request to server https://<PSQL_NODE_NAME>:2379 failed: MaxRetryError("HTTPSConnectionPool(host='<PSQL_NODE_NAME>', port=2379)
Kada etcd ne radi ili nije dostupan, patroni može zapisati sljedeće pogreške:
1 2 3 4 5 6 7 8 | |
<PSQL_NODE_NAME>-
Naziv jednog od čvorova klastera PostgreSQL.
U tom slučaju morate otkloniti poteškoće s uslugom etcd.