--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny PostgreSQL-cz ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/130306.1778664135%40localhost.
Dobrý deň,používam PostgreSQL v16.13-3 pod Windows.Som absolútny amatér čo sa týka správy PostgreSQL. Viem si spraviť čo potrebujem, ale v oblasti údržby, opravy a nastavenia som nula oproti tým, ktorí tu diskutujú.
Môj problém:Mám v DB jednoduchú tabuľku, ktorá má 362 záznamov a pravdepodobne jeden záznam je problémový alebo poškodený.Keď dám toto:UPDATE schema.tb_tabulkaSET hodnota = hodnota + 1WHERE (id_zaznam = 282);alebo:DELETE schema.tb_tabulkaWHERE (id_zaznam = 282);Tak mi client zamrzne (môžem čakať aj 5 minút) tak, že ho musím v správcovi úloh natvrdo zrušiť.Po zavolaní UPDATE alebo DELETE ho vidím v DB ako zamknutý.Viem ho odomknúť cez pg_cancel_backend (viac tu), ale keď spravím tú istú akciu (DELETE / UPDATE) znova sa zamkne.1. Čo je to vlastne za chyba ?Poškodená tabuľka ?2. Čo s tým ?3. Má PostgreSQL nejaký tool, kde by vedel skontrolovať integritu, prípadne by vedel opraviť automaticky poškodené veci ?V tomto som úplný amatér.Ďakujem za radu.Emil Jablonský
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4xek8AkfXRkdXKKVJuLqYO4FsKEpGS5fjnZknxad5urXg%40mail.gmail.com.
Je tam pravdepodobne niečo poškodené.REINDEX TABLE - zamrzne.DROP TABLE - zamrzne.RENAME TABLE - zamrzne.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4zsGi%2BimSaE9M7xxG8E7D3dS%3DQY%3DjbtSYBT3aAvW-PYeA%40mail.gmail.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRBOLAto1%3Dm%2BOUnvFHymtbaivG7xfQgBzpgh18w8Mj1m2A%40mail.gmail.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4yXGiAuYwkWcY5Zo5OrfZ-7bfz-ETnHGWHCYbUX7WRzpA%40mail.gmail.com.
Lock Monitoring zobrazil tabulku bez záznamov (ešte v čase keď UPDATE nefungovalo).Ten záznam sa momentálne tvári ako opravený. Podarilo sa mi spraviť na ňom UPDATE, aj REINDEX tabuľky.Neviem ako k tej "samooprave" došlo, lebo s tým bojujem už niekoľko hodín a nič mi doposiaľ nefungovalo.Je možné, že ten záznam/tabuľku "držal" nejaký klient ?Spravil som pg_cancel_backend() na všetky pid-y, ktoré boli spojené so zamknutím tej tabuľky, tak nerozumiem tomu.Aj napriek tomu nebolo možné záznam vymazať, ani updatovať. Ale len ten jeden, ostatné boli OK.Teraz je to OK aj pre ten problémový záznam - nechápem.Neviem ako sa to stalo, ani ako sa to opravilo.Pozerám v logu či niečo podozrivé nenájdem, ale nič zvláštne tam nevidím.Predpokladám, že toto je ukončenie klienta v Správcovi úloh vo Windows:2026-05-13 08:36:13 CEST ERROR: canceling statement due to user request
2026-05-13 08:36:13 CEST CONTEXT: SQL statement "UPDATE is8.tb_pouzivatelia ...Takých je tam kopec za sebou ako som skúšal UPDATE, DELETE, REINDEX, DROP TABLE a podobne.Medzi týmito záznamami nie je žiadny ERROR ani nič podozrivé.Nechápem.Tá tabuľka má už niekoľko rokov a nikdy s ňou nebol žiadny problém. Len za posledné 3 dni sa ojedinele zamkne práve tento záznam.Budem to naďalej sledovať.Príčinu ani riešenie tohoto problému nepoznám.Zatiaľ ďakujem za pomoc.PS: Ten postgresql musí byť geniálny, keď ten problém vyriešil za mňa a bezomňa. :-)Za vyše 20 rokov používania zatiaľ naň nedám dopustiť.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4yXGiAuYwkWcY5Zo5OrfZ-7bfz-ETnHGWHCYbUX7WRzpA%40mail.gmail.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRC0n1-3aOwjgWdGxGig3YoNpbqnyWfR5jhia0g-mxNx1g%40mail.gmail.com.
Myslím, že som na to prišiel. Držal to jeden klient (aplikácia), ktorý neukončil transakciu.Až keď ho dotyčný človek ukončil (zavrel aplikáciu), tak potom prebehlo všetko čo viselo.Chyba bola v tom klientovi (aplikácii). Klient je stará aplikácia napísaná v C++ Buildery, kde komponenta ktorá sa pripája na postgres má možnosť: AutoCommit a tá nebola zaškrtnutá. Takže v podstate všetko čo šlo cez tohoto klienta ostalo visieť a zamklo to aj pre ostatných.Človek pridal záznamy do databázy a keď som pozrel v databáze, tak tam nič nebolo a pritom on ich videl v aplikácii v tabuľke.Až keď zavrel aplikáciu, tak všetko naskákalo do tabuliek.Dúfam, že ten autocommit bolo jediné čo to spôsobovalo.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4y6dvVQHeVCyYJ09nb-%2BMQH-fYOC96%3DUvRy0gqR91v2FA%40mail.gmail.com.
No… nejenže to zůstalo viset, ale pokud měnil data (a pravděpodobně je měnil, jinak by nedošlo k zamknutí tabulek), tak se to v databázi nikdy nezmaterializovalo.
Doporučuji nastavit idle_in_transaction_session_timeout. Výchozí hodnota je nekonečno, což z více důvodů není moc zdravé.
Podle use case by mělo stačit několik minut, maximálně desítky minut, pokud chceš být safe.
Michal
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAEE__4y6dvVQHeVCyYJ09nb-%2BMQH-fYOC96%3DUvRy0gqR91v2FA%40mail.gmail.com.
Tuto diskuzi najdete na adrese https://groups.google.com/d/msgid/postgresql-cz/CAFn00_wdcidoTzNwn_Bv_o65%3D%3D7PJ3ASN1tE%3D44iB%3D%2BqhN1gxA%40mail.gmail.com.