PostgreSQL: Sprawdzanie aktywności na serwerze

8-lis-2020

Jednym z zadań administratora jest obserwacja aktywności użytkowników i w skrajnych przypadkach przerwanie niepoprawnych lub zbyt intensywnych zapytań.

Sprawdzenie aktywności można wykonać poleceniem

SELECT * FROM pg_stat_activity;

W odpowiedzi zostanie zwrócony data set zawierający informacje o tym kto i co w danej chwili robi na serwerze:

Jako administrator masz 2 możliwości potraktowania „niegrzecznego” użytkownika:

  • można zakończyć tylko wykonanie samego zapytania, ale pozostawić sesję
SELECT pg_cancel_backend(5360);
  • można zakończyć sesję i wszystkie powiązane z nią aktywności
SELECT pg_terminate_backend(5360);

Takie wymuszone kończenie sesji użytkownika przyda się z pewnością przed wykonaniem niektórych operacji na bazie danych jak np. restore.

Łączenie ze sobą składni SELECT z wywołaniem funkcji pozwala w bajecznie prosty sposób zabić sesje związane z jedną bazą danych:

SELECT pg_terminate_backend(pid) 
FROM pg_stat_activity
WHERE datname = 'northwind'

 

Komentarze są wyłączone

Autor: Rafał Kraik