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
1 |
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ę
1 |
SELECT pg_cancel_backend(5360); |
- można zakończyć sesję i wszystkie powiązane z nią aktywności
1 |
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:
1 2 3 |
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'northwind' |