PostgreSQL

Sådan dræbes inaktiv forbindelser i PostgreSQL

Sådan dræbes inaktiv forbindelser i PostgreSQL

Det første skridt i at foretage ændringer eller læse nogle oplysninger fra en PostgreSQL-databank er at etablere forbindelser. På den anden side genererede hvert link overhead ved hjælp af procedure og opbevaring. Derfor kan en enhed med minimale ressourcer (læsning, lagring, hardware) understøtte det begrænsede antal forbindelser. Når det begrænsede aggregat er gået langt ud over et punkt, skal det fortsætte med at kaste fejl eller nægte forbindelser. Inden for PostgreSQL.conf, PostgreSQL gør et anstændigt stykke arbejde med at begrænse links. I denne vejledning ser vi på de forskellige former for tilstande, som PostgreSQL-links kan have. Vi viser dig, hvordan du bestemmer, om linket er aktivt eller har været inaktivt i lang tid, i hvilket tilfælde det kan afbrydes for at frigøre links og ressourcer.

Opret forbindelse til server:

I starten skal du sørge for at have pgAdmin4 været fuldt funktionel installeret på dit computersystem. Åbn den fra dine applikationer. Du skal forbinde det med localhost ved at angive en adgangskode.

Efter forbindelsen med root localhost skal du forbinde den med PostgreSQL-serveren. Indtast adgangskoden til PostgreSQL 13-brugerens Postgres for at oprette forbindelse. Tryk på OK-knappen for at fortsætte.

Nu er du blevet forbundet til PostgreSQL 13-serveren. Du kan se en liste over databaser, der findes på serveren, som vist på billedet nedenfor. Postgres's database er standarddatabasen 'oprettet på tidspunktet for PostgreSQL-installationen, mens' test'-databasen er oprettet af en bruger bagefter installationen.

Tilslutningstilstande:

Hvis der oprettes et PostgreSQL-link, kan det udføre forskellige handlinger, der resulterer i tilstandsovergange. Der skal træffes en rationel beslutning om, hvorvidt linket fungerer, eller om det har været inaktivt / ubrugt afhængigt af tilstanden og varigheden, det har været i hver stat. Det er vigtigt at bemærke, at indtil applikationen bevidst lukker forbindelsen, forbliver den i drift og spilder ressourcer længe efter klienten er løsrevet. Der er de fire potentielle tilstande for en forbindelse:

Identificer forbindelsestilstandene:

PostgreSQL katalogtabellerne giver en indbygget visning 'pg_stat_activity' for at kontrollere statistikker om, hvad et link gør, eller hvor lang tid det har været i denne tilstand. For at kontrollere alle statistikker vedrørende hver database og enhver forbindelsestilstand skal du åbne forespørgselsværktøjet og udføre nedenstående forespørgsel:

>> VÆLG * FRA pg_stat_aktivitet;

Forespørgslen er implementeret med frugt, og noten om gennemførelse er vist.

Når du tjekker dens dataudgangsside, finder du en tabel med flere kolonner, som vist nedenfor. Du kan kontrollere tilslutningstilstandene ved at kontrollere værdierne i feltet 'tilstand'.

For at forenkle output og få en klar idé om forbindelser, deres tilstande, brugere og servere i disse stater, skal du udføre nedenstående modificerede forespørgsel i forespørgselsværktøjet. Denne forespørgsel viser kun de 5 felter med poster til forbindelser og bestemte data vedrørende dem. Kolonnen 'pid' står for proces-id. Kolonnen 'tilstand' indeholder processernes tilstande. Kolonnen 'brugernavn' identificerer den bruger, der har arbejdet med den bestemte proces. Kolonnen 'datname' angav databasenavnet, som transaktionen blev udført på. Kolonnen 'datid' står for database-id.

>> VÆLG pid, tilstand, brugernavn datnavn, datid, fra pg_stat_activity;

Outputtet har i alt registreret 8 processer. Kolonnen 'tilstand' viser, at der kun er 3 processer, der fungerer lige nu. Den ene holdes som standarddatabase 'Postgres og de to andre holdes af database' test '. Samtidig har 'Postgres-brugeren udført disse processer.

Identificer inaktiv forbindelser:

“Tilstanden” ser ud til at være den eneste værdi, vi søger efter inden for de ovennævnte resultater. Vi bruger disse oplysninger til at bestemme, hvilke processer eller forespørgsler der er i hvilke tilstande og derefter grave dybere. Vi kan slanke de detaljer, vi søger efter, ved at finjustere forespørgslen, så vi kan forberede en intervention på den specifikke forbindelse. Vi kunne gøre dette ved kun at vælge de inaktive PID'er ved hjælp af WHERE-klausulen og staterne for disse PID'er. Vi bør også holde styr på, hvor længe linket har været inaktivt, og sikre, at vi ikke har nogen forsømte links, der spilder vores ressourcer. Som et resultat bruger vi kommandoen nedenfor omformuleret til kun at vise poster, der er relevante for de processer, der i øjeblikket er inaktive:

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

Forespørgslen har kun hentet to poster med data, hvor staten var 'inaktiv' ved hjælp af WHERE-klausulen. Resultatet viser de to inaktive processer med visse oplysninger om dem.

Dræb en inaktiv forbindelse:

Efter identifikationen af ​​ledige forbindelser er det nu tid til at dræbe dem. Når vi har nedbrudt processen enten i hold eller inaktiv i meget længere tid, kunne vi bruge den enkle kommando til let at afslutte back-end-mekanismen uden at forstyrre serverens aktiviteter. Vi er nødt til at give processen 'id' inden for forespørgslen i en afslutningsfunktion.

>> VÆLG pg_terminate_backend (7408);

Processen er storslået dræbt.

Kontroller nu de resterende inaktive forbindelser fra nedenstående vedhæftede forespørgsel.

>> VÆLG datid, brugernavn, datnavn, pid, tilstand FRA pg_stat_activity WHERE state = 'inaktiv';

Outputtet viser kun 1 resterende proces, som er inaktiv.

Konklusion:

Sørg for ikke at gå glip af noget skridt til effektivt at dræbe de inaktive forbindelser fra PostgreSQL-databasen.

Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...