Vastus (27.08.2024 09:38): Lahendust kirjeldatakse
siin.
Kokkuvõtlikult:
Tuleb leida konkreetse andmebaasiga seotud sessioonid e seansid. Järgneva päringu võite käivitada tegelikult mistahes PostgreSQLi andmebaasis - st kui oma andmebaasis päringu käivitumisel jääb see toppama, siis ühenduge mõne teise andmebaasi külge.
SELECT *
FROM pg_stat_activity
WHERE datname='andmebaasi nimi väiketähtedega';
Katkesta serveriprotsess ja lõpeta selle algatanud sessioon.
SELECT pg_terminate_backend(pid);
Kõige selle automatiseerimiseks võib psqlis käivitada järgneva skripti, asendades eelnevalt t990999 selle andmebaasi nimega, kus on kinni jooksnud päring.
SELECT format('SELECT pg_terminate_backend(%1$s)', pid) AS statements
FROM pg_stat_activity
WHERE datname='t990999'
\gexec
Skript koostab päringu tulemuse põhjal format funktsiooni kasutades dünaamiliselt SQL laused ja käivitab need automaatselt gexec käsu abil.