Połączenia sprawdzania postgres są aktywne

Połączenia sprawdzania postgres są aktywne
PostgreSQL to jeden z moich ulubionych systemów zarządzania bazą danych. Jest potężny, łatwy w obsłudze i używa bardzo znanych natywnych zapytań SQL.

Jedną potężną funkcją PostgreSQL jest możliwość pobierania informacji w minimalnych zapytaniach SQL. To dlatego, że ma schematy i tabele, które są dobrze zorganizowane i zarezerwowane dla konkretnych informacji, w tym monitorowanie aktywności serwera.

Ten samouczek przeprowadzi Cię przez różne sposoby identyfikacji połączeń i działań serwerowych za pomocą serwera. Może to pomóc zidentyfikować połączenia, zarządzać nimi lub zakończyć je, jeśli nie są one przydatne.

Katalog systemu PostgreSQL

Zanim zaczniemy zapytać PostgreSQL pod kątem aktywnych połączeń na serwerze, zrozumiemy, gdzie dzieje się to zbieranie informacji.

PostgreSQL zawiera schemat z tabelami i widokami wypełnionymi informacjami o metadanych o innych obiektach na serwerze. To jest podobne do tabeli Information_Schema w MySQL.

Schemat katalogu systemu pozwala gromadzić informacje o systemie, w tym procesy systemowe, indeksy, dostęp do tabeli, metoda dostępu do danych i wiele innych.

Ponieważ katalog systemu jest masywny i zawiera ładunki i mnóstwo informacji, nie możemy go pokryć w jednym artykule. Istnieje jednak jedna tabela, którą jesteśmy zainteresowani: pg_stat_activity.

Ta tabela pokazuje dziennik połączeń ustalonych z serwerem i odpowiadające im dane, baza danych podłączona do PID jego równoważnego procesu i wiele więcej.

PG_STAT_ACTIVIVIVICE

Informacje, które możemy zebrać z tabeli PG_STAT_ACTIVITY obejmują następujące

  • DATID - Pokazuje OID bazy danych, do którego połączenie się połączyło.
  • nazwa danych - Nazwa połączenia bazy danych.
  • pid - Procesy identyfikator połączenia.
  • używa się - Oid zalogowany użytkownika.
  • Użyj imienia - Nazwa zalogowanego użytkownika.
  • Nazwa aplikacji - Nazwa aplikacji połączona w określonej sesji
  • client_addr - Adres IP klienta powiązany z określonym połączeniem.
  • Client_hostname - Nazwa hosta klienta określonego połączenia.
  • Client_port - To pokazuje numer portu TCP używany do łączenia się z serwerem przez klienta zestawu.
  • backend_start - Po uruchomieniu procesu odpowiada czasu podłączonego klienta z serwerem.
  • query_stat - Czas, w którym rozpoczęło się aktualnie działające zapytanie. Jeśli nie ma aktywnego zapytania, pokazuje query_stat z poprzedniego zapytania.
  • państwo - Obecny stan połączenia. Może to być bezczynne, aktywne, niepełnosprawne, bezczynne w transakcji, bezczynne w transakcji (przerwane) i wywołanie funkcji FastPath.
  • Zapytanie - pokazuje najnowsze zapytanie z połączenia.
  • Czekanie - Prawda czy fałsz, jeśli połączenie czeka na zamek.

Dzięki tym informacjom możemy teraz zapytać o szczegółowe informacje o aktywnych połączeniach na serwerze.

Jak zapytać aktywne połączenia

Aby zapytać o aktywne połączenia, zaczynamy od logowania na serwerze. Jeśli używasz domyślnej instalacji PostgreSQL, użyj PSQL za pomocą nazwy użytkownika i hasła jako

psql -u postgres -w
Hasło:
PSQL (13.3)

Wpisz „pomoc” o pomoc.

Zacznijmy od zebrania wszystkich informacji z tabeli PG_STAT_ACTIVITY. Użyj zapytania, jak pokazano poniżej

Wybierz * z pg_stat_activity;

Po wykonaniu powyższego zapytania PostgreSQL zrzuci wiele informacji o tobie, z których większość możesz nie potrzebować. Aby to rozwiązać, możemy wybrać określone kolumny, jak pokazano w zapytaniu poniżej:

Wybierz nazwę DATName jako nazwa danych bazy danych,
PID jako proces_id,
nazwa użytkownika jako nazwa użytkownika,
Nazwa aplikacji,
Client_Addr jako host,
Client_port jako port,
państwo,
zapytanie
z pg_stat_activity;

To wybierze tylko potrzebne informacje i zorganizuje je w sposób tabelaryczny, jak pokazano na zrzucie ekranu.

Wreszcie możemy filtrować tam, gdzie status nie jest równy aktywnemu, aby zebrać tylko aktywne połączenia.

Zapytanie o to::

Wybierz nazwę DATName jako nazwa danych bazy danych,
PID jako proces_id,
nazwa użytkownika jako nazwa użytkownika,
Nazwa aplikacji,
Client_Addr jako host,
Client_port jako port,
państwo,
zapytanie
z PG_STAT_ACTIVITY
Gdzie państwo „bezczynne”;

To pokaże wyjście podobne do tego pokazanego poniżej:

Wreszcie prostym sposobem na uzyskanie podobnych informacji jest użycie pgadmin. PGADMIN to potężne narzędzie administracyjne GUI dla bazy danych PostgreSQL.

Po zalogowaniu się do PGADMIN przejdź do pulpitu nawigacyjnego i przejdź do server_activity. Odśwież, aby pokazać wszystkie połączenia.

Wniosek

W tym przewodniku sprawdzono, jak zapytać o działania połączenia z PostgreSQL za pomocą tabeli PG_STAT_ACTIVITY i PGADMIN.