PostgreSQL

Ako zabiť nečinné spojenia v PostgreSQL

Ako zabiť nečinné spojenia v PostgreSQL

Prvým krokom pri vykonávaní zmien alebo načítaní niektorých informácií z databanky PostgreSQL je nadviazanie spojenia. Na druhej strane, každý odkaz generoval réžiu s využitím postupu a úložiska. Preto zariadenie s minimálnymi prostriedkami (čítanie, ukladanie, hardvér) môže podporovať obmedzený súhrn pripojení. Len čo obmedzený agregát prekročí bod, mal by pokračovať v hádzaní chýb alebo v odmietaní pripojení. V rámci PostgreSQL.conf, PostgreSQL odvádza slušnú prácu pri obmedzovaní odkazov. V tomto tutoriále sa pozrieme na rôzne formy stavov, ktoré môžu mať odkazy PostgreSQL. Ukážeme vám, ako zistiť, či je odkaz aktívny alebo bol dlho neaktívny. V takom prípade ho možno odpojiť, aby sa odkazy a zdroje uvoľnili.

Pripojiť k serveru:

Na začiatku sa uistite, že máte v počítači nainštalovaný program pgAdmin4. Otvorte ho vo svojich aplikáciách. Musíte ho spojiť s localhost poskytnutím hesla.

Po pripojení k root localhost ho pripojte k serveru PostgreSQL. Zadajte heslo pre pripojenie používateľa PostgreSQL 13 'Postgres. Pokračujte klepnutím na tlačidlo OK.

Teraz ste boli pripojení k serveru PostgreSQL 13. Môžete vidieť zoznam databáz nachádzajúcich sa na serveri, ako je znázornené na obrázku priloženom nižšie. Databáza Postgres je predvolená databáza „vytvorená v čase inštalácie PostgreSQL, zatiaľ čo„ testovaciu “databázu vytvoril užívateľ po inštalácii.

Štáty pripojenia:

Ak sa vytvorí odkaz PostgreSQL, môže vykonávať rôzne akcie, ktoré vedú k prechodom stavu. Malo by sa prijať racionálne rozhodnutie o tom, či odkaz funguje alebo či zostal nečinný / nepoužívaný v závislosti od stavu a doby trvania v každom štáte. Je dôležité si uvedomiť, že kým aplikácia zámerne neukončí pripojenie, bude naďalej v prevádzke a bude zbytočne míňať zdroje dlho po odpojení klienta. Existujú 4 potenciálne stavy pripojenia:

Identifikujte stavy pripojenia:

Tabuľky katalógu PostgreSQL poskytujú zabudované zobrazenie „pg_stat_activity“ na kontrolu štatistík o tom, čo odkaz robí alebo koľko času už bolo v tomto stave. Ak chcete skontrolovať všetky štatistické údaje týkajúce sa každej databázy a každého stavu pripojenia, otvorte dotazovací nástroj a vykonajte nasledujúci dotaz:

>> SELECT * FROM pg_stat_activity;

Dotaz bol úspešne implementovaný a bola zobrazená poznámka o splnení.

Keď skontrolujete jeho výstupnú stranu s údajmi, nájdete tabuľku s niekoľkými stĺpcami, ako je uvedené nižšie. Stavy pripojení môžete skontrolovať skontrolovaním hodnôt v poli „stav“.

Ak chcete zjednodušiť výstup a získať jasnú predstavu o pripojeniach, ich stavoch, používateľoch a serveroch v týchto štátoch, musíte v dotazovacom nástroji vykonať nižšie upravený dotaz. Tento dopyt zobrazuje iba 5 polí záznamov o pripojeniach a konkrétnych údajov, ktoré sa ich týkajú. Stĺpec „pid“ predstavuje id procesu. Stĺpec „štát“ obsahuje stavy procesov. Stĺpec „usename“ označuje používateľa, ktorý pracoval na konkrétnom procese. Stĺpec 'datname' špecifikoval názov databázy, s ktorou sa transakcia uskutočňovala. Stĺpec 'datid' predstavuje id databázy.

>> SELECT pid, state, usename datname, datid, from pg_stat_activity;

Na výstupe je celkovo zaznamenaných 8 procesov. Stĺpec „stav“ ukazuje, že momentálne fungujú iba 3 procesy. Jeden je držaný predvolenou databázou 'Postgres a ďalšie dva sú držané databázou' test '. Užívateľ 'Postgres súčasne vykonával tieto procesy.

Identifikujte nečinné pripojenia:

„Stav“ sa javí ako jediná hodnota, ktorú hľadáme v rámci výsledkov uvedených vyššie. Tieto informácie použijeme na to, aby sme určili, ktoré procesy alebo dotazy sa nachádzajú v ktorých stavoch, a potom sa ponoríme hlbšie. Môžeme zúžiť podrobnosti, ktoré hľadáme, vylepšením dotazu, čo nám umožní pripraviť zásah do tohto konkrétneho spojenia. Mohli by sme to urobiť výberom iba nečinných PID pomocou klauzuly WHERE a stavov pre tieto PID. Mali by sme tiež sledovať, ako dlho je odkaz neaktívny, a zabezpečiť, aby sme nemali žiadne zanedbané odkazy premrhajúce naše zdroje. Vo výsledku budeme pomocou príkazu s podefrázou zobrazovať iba záznamy týkajúce sa procesov, ktoré sú momentálne nečinné:

>> SELECT pid, usename, usesysid, datid, datname, application_name, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'idle';

Dotaz priniesol iba 2 záznamy údajov, v ktorých bol stav „nečinný“ pomocou klauzuly WHERE. Výsledkom sú 2 nečinné procesy s určitými informáciami, ktoré sa ich týkajú.

Zabite nečinné pripojenie:

Po identifikácii nečinných pripojení je teraz čas ich zabiť. Keď sme proces obmedzili buď v stave pozastavenia, alebo neaktívnom na oveľa dlhšie, mohli by sme pomocou jednoduchého príkazu ľahko ukončiť back-end mechanizmus bez narušenia činnosti servera. Proces „id“ musíme poskytnúť v rámci dotazu v terminačnej funkcii.

>> SELECT pg_terminate_backend (7408);

Tento proces bol veľkolepo zabitý.

Teraz skontrolujte zostávajúce nečinné pripojenia z nižšie pripojeného dotazu.

>> SELECT datid, usename, datname, pid, state FROM pg_stat_activity WHERE state = 'idle';

Výstup zobrazuje iba 1 zostávajúci proces, ktorý je nečinný.

Záver:

Určite nevynechajte žiadny krok, aby ste efektívne zabili neaktívne pripojenia z databázy PostgreSQL.

Hry Najlepšie hry na hranie s ručným sledovaním
Najlepšie hry na hranie s ručným sledovaním
Oculus Quest nedávno predstavil skvelú myšlienku ručného sledovania bez ovládačov. Vďaka stále sa zvyšujúcemu počtu hier a aktivít, ktoré vykonávajú p...
Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...