PostgreSQL

Hur man dödar lediga anslutningar i PostgreSQL

Hur man dödar lediga anslutningar i PostgreSQL

Det första steget i att göra ändringar eller läsa information från en PostgreSQL-databank är att upprätta anslutningar. Å andra sidan genererade varje länk omkostnader med användning av procedur och lagring. Det är därför en enhet med minimala resurser (läsning, lagring, hårdvara) kan stödja det begränsade antalet anslutningar. När det begränsade aggregatet har gått långt utöver en punkt bör det fortsätta att kasta fel eller neka anslutningar. Inom PostgreSQL.conf gör PostgreSQL ett anständigt jobb med att begränsa länkar. I denna handledning tittar vi på de olika formerna av tillstånd som PostgreSQL-länkar kan ha. Vi visar hur du bestämmer om länken är aktiv eller har varit inaktiv under lång tid, i vilket fall den kan kopplas bort för att frigöra länkar och resurser.

Anslut till servern:

I början, se till att du har pgAdmin4 har installerats fullt på ditt datorsystem. Öppna den från dina applikationer. Du måste ansluta den till localhost genom att ange ett lösenord.

Efter anslutningen till root localhost ansluter du den till PostgreSQL-servern. Skriv lösenordet för PostgreSQL 13-användarens Postgres att ansluta. Tryck på OK-knappen för att fortsätta.

Nu har du anslutits till PostgreSQL 13-servern. Du kan se en lista med databaser som finns på servern enligt bilden som bifogas nedan. Postgres databas är standarddatabasen 'skapad vid installationen av PostgreSQL, medan databasen' test 'har skapats av en användare efter installationen.

Anslutningstillstånd:

Om en PostgreSQL-länk upprättas kan den utföra olika åtgärder som leder till tillståndsövergångar. Ett rationellt beslut bör fattas om huruvida länken fungerar eller om den har varit inaktiv / oanvänd beroende på tillståndet och hur länge den har varit i varje tillstånd. Det är viktigt att notera att tills applikationen avsiktligt stänger anslutningen, kommer den att fortsätta att fungera och slösa bort resurser långt efter att klienten är fristående. Det finns de fyra potentiella tillstånden för en anslutning:

Identifiera anslutningstillstånden:

PostgreSQL-katalogtabellerna ger en inbyggd vy 'pg_stat_activity' för att kontrollera statistik om vad en länk gör eller hur mycket tid det har varit i detta tillstånd. För att kontrollera all statistik för varje databas och alla anslutningstillstånd, öppna frågverktyget och kör följande fråga:

>> VÄLJ * FRÅN pg_stat_aktivitet;

Frågan har genomförts fruktbart och prestationsanmärkningen har visats.

När du kontrollerar dess utdata-sida hittar du en tabell med flera kolumner, som visas nedan. Du kan kontrollera tillstånden för anslutningar genom att kontrollera värdena för fältet "state".

För att förenkla utdata och få en tydlig uppfattning om anslutningar, deras tillstånd, användare och servrar i dessa stater, måste du utföra den nedan modifierade frågan i frågeverktyget. Den här frågan visar bara de 5 fälten med poster för anslutningar och särskild data angående dem. Kolumnen 'pid' står för process-id. Kolumnen "tillstånd" innehåller processernas tillstånd. Kolumnen "användarnamn" identifierar användaren som har arbetat med den specifika processen. Kolumnen 'datnamn' specificerade databasnamnet som transaktionen har utförts på. Kolumnen 'datid' står för databas-id.

>> VÄLJ pid, tillstånd, användnamn datnamn, datid, från pg_stat_activity;

Resultatet har totalt åtta registrerade processer. Kolumnen "tillstånd" visar att det bara finns tre processer som fungerar just nu. En hålls som standarddatabas 'Postgres och de andra två hålls av databastest'. Samtidigt har 'Postgres-användaren utfört dessa processer.

Identifiera tomgångsanslutningarna:

"Tillståndet" verkar vara det enda värdet vi letar efter inom de resultat som nämns ovan. Vi kommer att använda denna information för att avgöra vilka processer eller frågor som finns i vilka tillstånd och därefter gräva djupare. Vi kan smala ner de uppgifter vi söker efter genom att förfina frågan, så att vi kan förbereda en intervention på den specifika anslutningen. Vi kan göra detta genom att bara välja de inaktiva PID: erna med WHERE-klausulen och staterna för dessa PID: er. Vi bör också hålla reda på hur länge länken har varit inaktiv och se till att vi inte har några försummade länkar som slösar bort våra resurser. Som ett resultat kommer vi att använda kommandot nedan omformuleras för att bara visa poster som är relevanta för de processer som för närvarande är inaktiva:

>> VÄLJ pid, användarnamn, useysid, datid, datname, application_name, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'inaktiv';

Frågan har bara hämtat två poster med data där tillståndet var 'inaktiv' med WHERE-klausulen. Resultatet visar de två lediga processerna med viss information om dem.

Döda en inaktiv anslutning:

Efter identifiering av lediga anslutningar är det dags att döda dem. När vi har minskat processen antingen i vänteläge eller inaktiv mycket längre, kan vi använda det enkla kommandot för att enkelt avsluta back-end-mekanismen utan att störa serverns aktiviteter. Vi måste ange processen "id" i frågan i en avslutningsfunktion.

>> VÄLJ pg_terminate_backend (7408);

Processen har magnifikt dödats.

Kontrollera nu de återstående lediga anslutningarna från den nedan bifogade frågan.

>> VÄLJ datid, användarnamn, datnamn, pid, tillstånd FRÅN pg_stat_activity WHERE state = 'tomgång';

Utgången visar endast 1 återstående process, som är inaktiv.

Slutsats:

Se till att du inte missar något steg för att effektivt döda inaktiva anslutningar från PostgreSQL-databasen.

5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...