Přeskočit na hlavní obsah

Problémy s databází PostgreSQL ve Flexi

Aplikace Flexi vypisuje chybu týkající se databáze postgres

Autor: Petr Pech
Aktualizováno před více než týdnem

V některých případech může dojít k chybě v databázi, v aplikaci se taková chyba většinou projeví chybovým hlášením ohledně SQL, indexů či databázové procedury apod.

Postup pro analýzu problému

  1. Důležitým krok před zásahy do databáze je záloha dat, doporučujeme zálohovat pravidelně (vlastní/lokální server, cloud zálohujeme na naší straně), ideálně mít k dispozici i starší zálohy.

  2. Doporučujeme udělat záložní kopii celého datového adresáře postgresql.

  3. Proveďte kontrolu integrity disku (check disk, fsck, ...)

  4. Následuje oprava postgresu - reindex, výmaz duplicitní záznamů, apod. (Tento krok je možný provést v ojedinělých případech z naší strany formou servisního zásahu. Řešení by však měl provést Váš databázový specialista.).

  5. Posledním krokem je ověření funkčnost vytvořením aktuální zálohy účtované firmy ve Flexi a ověřovacího obnovení ze zálohy.

Možné příčiny

V ojedinělých případech došlo u klienta k výpadku služby PostgreSQL

  • Windows Server 2022 Standard

  • V logu se zobrazuje obecné info: "WinStrom-PostgreSQL byla nečekaně ukončena."

  • Nepomohl standardní restart služeb (server a PostgreSQL)

Nakonec pomohlo nahodit PostgreSQL ručně pomocí pg_ctl start a počkat cca 10 - 15 minut na start. Výchozí timeout 300s nestačil. Službu se následně podařilo nastartovat.

ERROR: could not create unique index

Problém je způsoben změnou na lokálním uložišti po aktualizaci OS - PostgreSQL momentálně nemá způsob, jak detekovat nekompatibilní aktualizaci glibc (zdroj). Jako řešení problému obvykle stačí promazat tabulku wcolumn.

Příklad chyby:

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

Dostali jste odpověď na svou otázku?