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
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 -wWpisz „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,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,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.