PostgreSQL

Kako ubiti nedejavne povezave v PostgreSQL

Kako ubiti nedejavne povezave v PostgreSQL

Prvi korak pri spreminjanju ali branju nekaterih informacij iz zbirke podatkov PostgreSQL je vzpostavitev povezav. Po drugi strani pa je vsaka povezava ustvarila režijske postopke z uporabo postopka in shranjevanja. Zato lahko naprava z minimalnimi sredstvi (branje, shranjevanje, strojna oprema) podpira omejen sklop povezav. Ko omejeni agregat preseže točko, bi moral še naprej metati napake ali zanikati povezave. Znotraj PostgreSQL.conf, PostgreSQL dostojno dela omejevanje povezav. V tej vadnici bomo preučili različne oblike stanj, ki jih lahko imajo povezave PostgreSQL. Pokazali vam bomo, kako ugotoviti, ali je povezava aktivna ali je bila dolgo neaktivna, pri čemer jo je mogoče odklopiti, da sprostite povezave in vire.

Poveži se s strežnikom:

Na začetku se prepričajte, da imate v računalniškem sistemu popolnoma nameščen pgAdmin4. Odprite ga iz svojih aplikacij. Povezati ga morate z lokalnim gostom z vnosom gesla.

Po povezljivosti s korenskim lokalnim gostom ga povežite s strežnikom PostgreSQL. Vnesite geslo za povezavo uporabnika PostgreSQL 13 'Postgres. Za nadaljevanje tapnite gumb V redu.

Zdaj ste povezani s strežnikom PostgreSQL 13. Ogledate si lahko seznam zbirk podatkov, ki prebivajo na strežniku, kot je prikazano na spodnji sliki. Postgresova baza podatkov je privzeta baza podatkov, ustvarjena v času namestitve PostgreSQL, medtem ko je testno bazo podatkov uporabnik ustvaril po namestitvi.

Države povezave:

Če je vzpostavljena povezava PostgreSQL, lahko izvaja različna dejanja, ki povzročijo prehod stanja. Treba je sprejeti racionalno odločitev o tem, ali povezava deluje ali je ostala nedejavna / neuporabljena, odvisno od stanja in trajanja posamezne države. Pomembno je vedeti, da dokler aplikacija namerno ne zapre povezave, bo še naprej delovala in zapravljala sredstva še dolgo po tem, ko je stranka odklopljena. Obstajajo 4 potencialna stanja za povezavo:

Določite stanja povezave:

Kataloške tabele PostgreSQL imajo vgrajen pogled 'pg_stat_activity' za preverjanje statističnih podatkov o tem, kaj povezava počne ali koliko časa je že bila v tem stanju. Če želite preveriti vse statistične podatke o vsaki bazi podatkov in vsakem stanju povezave, odprite orodje za poizvedbe in izvedite spodnjo poizvedbo:

>> SELECT * FROM pg_stat_activity;

Poizvedba je bila uspešno izvedena in prikazano je obvestilo o dosežkih.

Ko preverite izhodno stran podatkov, boste našli tabelo z več stolpci, kot je prikazano spodaj. Stanja povezav lahko preverite tako, da preverite vrednosti polja 'stanje'.

Če želite poenostaviti izhod in imeti jasno predstavo o povezavah, njihovih stanjih, uporabnikih in strežnikih v teh stanjih, morate v orodju za poizvedbe izvesti spodaj spremenjeno poizvedbo. Ta poizvedba prikazuje samo 5 polj zapisov za povezave in določene podatke v zvezi z njimi. Stolpec 'pid' pomeni ID procesa. Stolpec 'stanje' vsebuje stanja procesov. Stolpec 'uporabniško ime' označuje uporabnika, ki je delal na določenem postopku. Stolpec 'datname' je določil ime baze podatkov, v kateri je bila izvedena transakcija. Stolpec 'datid' pomeni id baze podatkov.

>> IZBERI pid, stanje, uporabniško ime datname, datid, iz pg_stat_activity;

Izhod ima skupno 8 posnetih postopkov. Stolpec 'stanje' kaže, da trenutno delujejo samo 3 procesi. Eno ima privzeta baza podatkov 'Postgres, druga dva pa' testna 'baza podatkov. Hkrati je uporabnik Postgres izvajal te postopke.

Določite proste povezave:

Zdi se, da je "stanje" edina vrednost, ki jo iščemo znotraj zgoraj omenjenih rezultatov. Te informacije bomo uporabili za določitev, kateri procesi ali poizvedbe so v katerih stanjih, nato pa se poglobili. Podrobnosti, ki jih iščemo, lahko zmanjšamo tako, da natančneje določimo poizvedbo in tako omogočimo pripravo posega na to specifično povezavo. To bi lahko storili tako, da smo z uporabo klavzule WHERE in stanj za te PID izbrali samo nedejavne PID-je. Prav tako bi morali spremljati, kako dolgo je bila povezava neaktivna, in zagotoviti, da zanemarjenih povezav ne bi zapravljali. Kot rezultat bomo s spodnje preoblikovanim ukazom prikazali samo zapise, pomembne za procese, ki so trenutno v mirovanju:

>> IZBERI pid, uporabniško ime, useysid, datid, ime, ime_programa, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'idle';

Poizvedba je pridobila samo 2 zapisa podatkov, pri katerih je bilo stanje v stanju mirovanja s pomočjo stavka WHERE. Rezultat prikazuje dva nedejavna procesa z določenimi informacijami v zvezi z njimi.

Prekinitev povezave v prostem teku:

Po identifikaciji nedejavnih povezav je zdaj čas, da jih ubijemo. Ko postopek bistveno zaustavimo, bodisi v stanju zadrževanja bodisi neaktivni, lahko s preprostim ukazom enostavno prekinemo zaledni mehanizem, ne da bi motili delovanje strežnika. V poizvedbi v končni funkciji moramo vnesti postopek 'id'.

>> IZBERI pg_terminate_backend (7408);

Postopek je bil čudovito ubit.

Zdaj preverite preostale nedejavne povezave iz spodaj priložene poizvedbe.

>> IZBERI datid, uporabniško ime, ime, pid, stanje FROM pg_stat_activity WHERE state = 'idle';

Izhod prikazuje samo 1 preostali postopek, ki je v stanju mirovanja.

Zaključek:

Pazite, da ne boste zamudili nobenega koraka za učinkovito ukinjanje neaktivnih povezav iz baze podatkov PostgreSQL.

Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...