Postgres Kontroller tilkoblinger er aktive

Postgres Kontroller tilkoblinger er aktive
PostgreSQL er et av mine favorittdatabaseadministrasjonssystemer. Det er kraftig, enkelt å jobbe med, og bruker veldig kjente innfødte SQL -spørsmål.

En kraftig funksjon om PostgreSQL er muligheten til å hente informasjon i minimale SQL -spørsmål. Det er fordi det har skjemaer og tabeller som er godt organisert og forbeholdt spesifikk informasjon, inkludert overvåking av serveraktivitet.

Denne opplæringen vil lede deg gjennom forskjellige måter å identifisere serverforbindelser og aktiviteter ved hjelp av serveren. Dette kan hjelpe deg med å identifisere tilkoblingene, administrere dem eller avslutte dem hvis de ikke er nyttige.

PostgreSQL -systemkatalogen

Før vi kommer til å spørre PostgreSQL for aktive tilkoblinger på serveren, la oss forstå hvor denne informasjonsinnsamlingen skjer.

PostgreSQL inneholder et skjema med tabeller og visninger befolket med metadatainformasjon om andre objekter på serveren. Som ligner på informasjons_schema -tabellen i mysql.

Systemkatalogskjemaet lar deg samle informasjon om systemet, inkludert systemprosesser, indekser, tabelltilgang, metode for datatilgang og mange flere.

Siden systemkatalogen er massiv og inneholder masse og masse informasjon, kan vi ikke dekke den i en artikkel. Imidlertid er det en tabell som vi er interessert i: PG_STAT_ACTIVITY.

Denne tabellen viser en logg over tilkoblinger som er etablert til serveren og deres tilsvarende data, databasen koblet til, PID for dens tilsvarende prosess, og så mye mer.

PG_STAT_ACTIVITY

Informasjonen vi kan samle fra tabellen PG_STAT_ACTIVITY inkluderer følgende

  • Datid - Viser OID for databasen tilkoblingen har koblet til.
  • Datname - Navnet på databasetilkoblingen.
  • PID - prosesser ID for tilkoblingen.
  • BRUKSYSID - Oid av brukeren logget inn.
  • bruk navn - Navnet på brukeren logget inn.
  • Programnavn - Applikasjonens navn koblet til i en bestemt økt
  • klient_addr - IP -adresse til klienten tilknyttet en spesifikk tilkobling.
  • client_hostname - Vertsnavnet til klienten til en spesifikk tilkobling.
  • klient_port - Dette viser TCP -portnummeret som brukes til å koble til serveren av en angitt klient.
  • backend_start - Når prosessen startet-tilsvarer den tiden en klient koblet til serveren.
  • Query_stat - Tiden da den for øyeblikket kjørte spørringen startet. Hvis det ikke er noen aktiv spørring, viser det spørringen for forrige spørring.
  • stat - Gjeldende tilstand av forbindelsen. Dette kan være ledig, aktiv, deaktivert, inaktiv i en transaksjon, inaktiv i transaksjon (abortert) og FastPath -funksjonsanrop.
  • Spørsmål - viser den siste spørringen fra tilkoblingen.
  • Venter - sant eller usant hvis en forbindelse venter på en lås.

Med den informasjonen kan vi nå spørre detaljert informasjon om aktive tilkoblinger på serveren.

Hvordan spørre aktive tilkoblinger

For å spørre om aktive tilkoblinger, starter vi med å logge inn på serveren. Hvis du bruker standard PostgreSQL -installasjon, bruk PSQL med brukernavnet og passordet ditt som

PSQL -U Postgres -W
Passord:
PSQL (13.3)

Skriv inn "hjelp" for å få hjelp.

La oss starte med å samle all informasjonen fra PG_STAT_ACTIVITY -tabellen. Bruk spørringen som vist nedenfor

Velg * fra PG_STAT_ACTIVITY;

Når du har utført spørringen ovenfor, vil PostgreSQL dumpe mye informasjon om deg, de fleste av dem trenger du kanskje ikke. For å løse dette kan vi velge spesifikke kolonner som vist i spørringen nedenfor:

Velg Datname som Database_Name,
PID som prosess_id,
Brukernavn som brukernavn,
Programnavn,
klient_addr som vert,
Client_port som port,
stat,
spørsmål
Fra PG_STAT_ACTIVITY;

Dette vil bare velge den nødvendige informasjonen og organisere den på en tabellform, som vist på skjermbildet.

Til slutt kan vi filtrere der statusen ikke er lik aktiv for å bare samle de aktive tilkoblingene.

Spørringen for det er:

Velg Datname som Database_Name,
PID som prosess_id,
Brukernavn som brukernavn,
Programnavn,
klient_addr som vert,
Client_port som port,
stat,
spørsmål
Fra PG_STAT_ACTIVITY
Der staten 'tomgang';

Dette vil vise en utgang som ligner den som er vist nedenfor:

Endelig er en enkel måte å få lignende informasjon å bruke pgadmin. PGADMIN er et kraftig GUI -administrasjonsverktøy for PostgreSQL -databasen.

Når du logger deg på pgadmin, navigerer du til dashbordet og går til server_aktivitet. Oppdater for å vise deg alle tilkoblingene.

Konklusjon

Denne guiden så på hvordan du spurte tilkoblingsaktiviteter fra PostgreSQL ved å bruke PG_STAT_ACTIVITIVITIVE TABLE og PGADMIN.