Kodulehed
[383] - Andmebaasid II (ITI0207) (sügis 2022)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid.
Värvilised mummud tähistavad hinnangulist kataloogide lugemise vajadust. Roheline - suurim, kollane - keskmine, punane või mummuta - väikseim
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / PostgreSQL

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Erki Eessaar:
PostgreSQL andmebaasisüsteemiga ei saa ühendust, sest aktiivsete klientide limiit on täis (too many clients). Milles võib olla põhjus ja kuidas probleemi lahendada?
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!

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!