PostgreSQL

Hoe inactieve verbindingen in PostgreSQL te beëindigen

Hoe inactieve verbindingen in PostgreSQL te beëindigen

De eerste stap bij het aanbrengen van wijzigingen of het lezen van informatie uit een PostgreSQL-databank is om verbindingen tot stand te brengen. Aan de andere kant genereerde elke link overhead met behulp van procedure en opslag. Daarom kan een apparaat met minimale bronnen (lezen, opslag, hardware) het beperkte aantal verbindingen ondersteunen. Zodra het beperkte aggregaat ver voorbij een bepaald punt is gegaan, zou het fouten moeten blijven maken of verbindingen moeten ontkennen. Binnen PostgreSQL.conf, PostgreSQL doet goed werk door links te beperken. In deze tutorial zullen we kijken naar de verschillende vormen van statussen die PostgreSQL-links kunnen hebben. We laten u zien hoe u kunt bepalen of de link actief is of gedurende lange tijd inactief is geweest, in welk geval deze kan worden losgekoppeld om de links en bronnen vrij te maken.

Connecteer met de server:

Zorg er in het begin voor dat pgAdmin4 volledig functioneel is geïnstalleerd op uw computersysteem. Open het vanuit uw applicaties. Je moet het verbinden met de localhost door een wachtwoord op te geven.

Na de verbinding met root localhost, verbind het met de PostgreSQL-server. Typ het wachtwoord voor de PostgreSQL 13-gebruiker 'Postgres om verbinding te maken'. Tik op de knop OK om door te gaan.

U bent nu verbonden met de PostgreSQL 13-server. U kunt een lijst met databases zien die zich op de server bevinden, zoals weergegeven in de onderstaande afbeelding:. De database van Postgres is de standaarddatabase die is gemaakt op het moment van de installatie van PostgreSQL, terwijl de 'test'-database na de installatie door een gebruiker is gemaakt.

Verbindingsstatussen:

Als er een PostgreSQL-link tot stand is gebracht, kan deze verschillende acties uitvoeren die resulteren in statusovergangen. Er moet een rationele beslissing worden genomen over de vraag of de link werkt of dat deze inactief/ongebruikt is gelaten, afhankelijk van de staat en hoe lang deze in elke staat is geweest. Het is belangrijk op te merken dat totdat de toepassing de verbinding opzettelijk verbreekt, deze blijft werken en bronnen verspilt lang nadat de client is losgekoppeld. Er zijn de 4 mogelijke toestanden voor een verbinding:

Identificeer de verbindingsstatussen:

De PostgreSQL-catalogustabellen bieden een ingebouwde weergave 'pg_stat_activity' om statistieken te controleren over wat een link doet of hoe lang het in deze toestand is geweest. Om alle statistieken met betrekking tot elke database en elke verbindingsstatus te controleren, opent u de querytool en voert u de onderstaande query uit:

>> SELECTEER * VAN pg_stat_activity;

De query is succesvol geïmplementeerd en de prestatienota is getoond.

Wanneer u de uitvoerzijde van de gegevens controleert, vindt u een tabel met verschillende kolommen, zoals hieronder weergegeven:. U kunt de statussen van verbindingen controleren door de waarden van het veld 'state' te controleren.

Om de uitvoer te vereenvoudigen en een duidelijk idee te hebben van verbindingen, hun statussen, de gebruikers en servers in die statussen, moet u de onderstaande aangepaste query uitvoeren in de querytool. Deze query toont alleen de 5 velden van records voor verbindingen en bepaalde gegevens over hen. De kolom 'pid' staat voor process id. De kolom 'state' bevat de statussen van processen. De kolom 'gebruiksnaam' identificeert de gebruiker die aan het specifieke proces heeft gewerkt. De kolom 'datname' specificeerde de databasenaam waarop de transactie is uitgevoerd. De kolom 'datid' staat voor database id.

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

De uitvoer heeft in totaal 8 geregistreerde processen. De kolom 'status' laat zien dat er momenteel slechts 3 processen werken. De ene wordt bijgehouden door de standaard database 'Postgres en de andere twee worden bewaard door de database 'test'. Tegelijkertijd voert de 'Postgres-gebruiker deze processen uit'.

Identificeer de inactieve verbindingen:

De "staat" lijkt de enige waarde te zijn waarnaar we zoeken binnen de hierboven genoemde resultaten. We zullen deze informatie gebruiken om te bepalen welke processen of vragen zich in welke toestanden bevinden en daarna dieper graven. We kunnen de details die we zoeken verkleinen door de zoekopdracht te verfijnen, zodat we een interventie op die specifieke verbinding kunnen voorbereiden. We zouden dit kunnen doen door alleen de inactieve PID's te kiezen met behulp van de WHERE-clausule en de statussen voor die PID's. We moeten ook bijhouden hoe lang de link inactief is geweest en ervoor zorgen dat we geen verwaarloosde links hebben die onze bronnen verspillen. Als gevolg hiervan zullen we de hieronder opnieuw geformuleerde opdracht gebruiken om alleen records weer te geven die relevant zijn voor de processen die momenteel inactief zijn:

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

De query heeft slechts 2 gegevensrecords opgehaald waarvan de status 'inactief' was met behulp van de WHERE-component. Het resultaat toont de 2 inactieve processen met bepaalde informatie over hen.

Een inactieve verbinding beëindigen:

Na de identificatie van inactieve verbindingen, nu een tijd om ze te doden. Zodra we het proces hebben afgeremd, hetzij in een wachtstand of veel langer inactief, kunnen we de eenvoudige opdracht gebruiken om het back-end-mechanisme eenvoudig te beëindigen zonder de activiteiten van de server te verstoren. We moeten het proces 'id' in de query opgeven in een beëindigingsfunctie.

>> SELECTEER pg_terminate_backend(7408);

Het proces is prachtig gedood.

Controleer nu de resterende inactieve verbindingen van de onderstaande bijgevoegde query.

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

De uitvoer toont slechts 1 overblijvend proces, dat inactief is.

Conclusie:

Zorg ervoor dat u geen enkele stap overslaat om de inactieve verbindingen van de PostgreSQL-database efficiënt te beëindigen.

Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...
Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...