Preskoči na glavno vsebino

Problémy s databázou PostgreSQL vo Flexi

Aplikácia Flexi zobrazuje chybu týkajúcu sa databázy postgres

Avtor: Petr Pech

V niektorých prípadoch môže dôjsť k chybe v databáze, v aplikácii sa takáto chyba väčšinou prejaví chybovým hlásením ohľadom SQL, indexov či databázovej procedúry a pod.

Postup pre analýzu problému

  1. Dôležitým krokom pred zásahmi do databázy je záloha dát, odporúčame zálohovať pravidelne (vlastný/lokálny server, cloud zálohujeme na našej strane), ideálne mať k dispozícii aj staršie zálohy.

  2. Odporúčame vytvoriť záložnú kópiu celého dátového adresára postgresql.

  3. Vykonajte kontrolu integrity disku (check disk, fsck, ...)

  4. Nasleduje oprava postgresu – reindex, vymazanie duplicitných záznamov a pod. (Tento krok je možné vykonať v ojedinelých prípadoch z našej strany formou servisného zásahu. Riešenie by však mal vykonať Váš databázový špecialista.).

  5. Posledným krokom je overenie funkčnosti vytvorením aktuálnej zálohy účtovanej firmy vo Flexi a overovacie obnovenie zo zálohy.

Možné príčiny

V ojedinelých prípadoch došlo u klienta k výpadku služby PostgreSQL

  • Windows Server 2022 Standard

  • V logu sa zobrazuje všeobecná informácia: "WinStrom-PostgreSQL bola nečakane ukončená."

  • Nepomohol štandardný reštart služieb (server a PostgreSQL)

Nakoniec pomohlo spustiť PostgreSQL ručne pomocou pg_ctl start a počkať cca 10 – 15 minút na spustenie. Predvolený timeout 300 s nestačil. Službu sa následne podarilo naštartovať.

ERROR: could not create unique index

Problém je spôsobený zmenou v lokálnom úložisku po aktualizácii OS – PostgreSQL momentálne nemá spôsob, ako detekovať nekompatibilnú aktualizáciu glibc (zdroj). Ako riešenie problému zvyčajne stačí vymazať tabuľku wcolumn.

Príklad chyby:

ERROR: could not create unique index "ddoklint_kod_key" Detail: Key (kod, modul)=(PE+0001/2021, POK) is duplicated.: updateDatabaseInternal

Ste s tem dobili odgovor na svoje vprašanje?