Vastus: Samaaegselt lubatud Postgresql kasutajate arvu on juba suurendatud
300-ni (vaikimisi arv on 100). Paraku juhtub aeg-ajalt, et ühe või teise serveri kasutaja tegevuse tulemusena genereeritakse nii palju ühendusi, et kogu ühenduste arv saab täis.
PostgreSQL (10.1) korral oli sellisel juhul probleemide allikaks ühes andmebaasis olev riknenud väline tabel ja/või selle loomiseks vajalik laiendus. Selle tabeli põhjal päringut tehes loodi ühe ühenduse asemel nii palju ühendusi, et aktiivsete ühenduste limiit sai täis. Käivitades nimetatud andmebaasis lause:
DROP EXTENSION IF EXISTS postgres_fdw CASCADE;
ning seejärel uuesti ülesandes 5 oleva väliste tabelite loomise koodi, sai väliseid tabeleid probleemideta kasutada. Kui puutute sama probleemiga kokku oma andmebaasis, siis peaksite toimima sarnaselt - kustutage laiendus ja sellest sõltuvad objektid enda andmebaasist ning käivitage ülesande 5 kood uuesti.
Kui põhjus pole Teis, vaid kelleski teises, siis aitab mulle kirja saatmine.
Infoks:
Päringuga (suvalises) andmebaasis:
SELECT * FROM
(SELECT count(*) AS used_connections FROM pg_stat_activity) q1,
(SELECT setting::int AS res_for_super FROM pg_settings WHERE name=$$superuser_reserved_connections$$) q2,
(SELECT setting::int AS max_connections FROM pg_settings WHERE name=$$max_connections$$) q3;
leiate hetkel aktiivsete ühenduste arvu ja ühenduste maksimaalse arvu.
Käsuga
ps ax | grep post
shelli promptis näete hetkel PostgreSQLiga seotud protsesse. Kui seal mingi matriklinumber palju kordub, siis põhjuseks on just see paljude ühenduste genereerimine.
Samuti palun kõikidel üliõpilastel töö lõppedes psqlist või pgAdminist välja logida, sest nagu eespool kirjas, ei ole samaaegsete ühenduste arv piiramatu ressurss!