DEV Community

Andrzej Klusiewicz
Andrzej Klusiewicz

Posted on

pgBouncer CLI - jak zarzadzac connection poolerem PostgreSQL z linii komend

pgBouncer to jeden z najpopularniejszych poolerow polaczen dla PostgreSQL, a jego wlasna konsola CLI pozwala podejrzec i zarzadzac stanem polaczen bez restartu uslugi - pokazujemy najwazniejsze komendy.

Z tego artykułu dowiesz się:

  • czym jest baza serwisowa w pgBouncerze,- jak sprawdzać ustawienia pgBouncera za pomocą jego CLI,- jak zmieniać ustawienia pgBouncera za pomocą jego CLI,- jak sprawdzać statystyki pgBouncera za pomocą jego CLI,- jak sprawdzać informacje o serwerach i klientach pgBouncera za pomocą jego CLI,- jak zablokować i odblokować połączenia poprzez pgBouncer za pomocą jego CLI.

PgBouncer umożliwia połączenie do bazy "serwisowej" pgbouncer przez psql, gdzie możemy znaleźć statystyki dotyczące użytkowania oraz zarządzać connection poolerem.

[Host 4: pgbouncer]

psql -p 6432 -U postgres pgbouncer
Enter fullscreen mode Exit fullscreen mode

Zapytani o hasło podajemy to, którego hash zapisaliśmy w pliku "/etc/pgbouncer/userlist.txt".

Poniższe polecenia działają tylko, jeżeli jesteśmy podłączeni do wirtualnej instancji "pgbouncer".

Informacje o kolejkach, liczbie aktywnych sesji i połączeń w kolejce:

show pools;
Enter fullscreen mode Exit fullscreen mode

Aktualne ustawienia pgbouncera, zmiana oraz przeładowanie ustawień

show config;

set parametr = wartość;

RELOAD;
Enter fullscreen mode Exit fullscreen mode

Inne przydatne widoki to:

show stats; - statystyki od startu procesu

show totals; - statystyki od czasu pierwszego startu

show servers; - informacje o serwerach

show clients; - informacje o klientach
Enter fullscreen mode Exit fullscreen mode

Mamy również możliwość zatrzymania kolejkowania połączeń, "PAUSE;" pgbouncer zacznie odrzucać nowe połączenia, rozłączy wszystkie oczekujące połączenia, pozwoli ukończyć aktywne zapytania / transakcje, a po zakończeniu natychmiast zamknie połączenie z postgresem. Przydatna opcja przed kontrolowanym restartem, jeżeli nie chcemy przerwać żadnej transakcji. Nowe połączenia będą niemożliwe do czasu wykonania "RESUME;"

DISABLE db; / ENABLE db; - odrzucanie/wznowienie nowych połączeń dla danej bazy

RECONNECT db; - zamyka wszystkie aktywne połączenia z postgresem i pozwala na natychmiastowe otwarcie nowych. Przydatne, jeżeli zmienialiśmy parametry postgresa, które są aktywowane po ponownym połączeniu, np. work_mem.

PgBouncer umożliwia wykonanie restartu "online", ale tylko na linuxie i jeżeli nie korzystamy z TLS. Poprzez uruchomienie pgbounera z opcją -R -d wystartujemy nowy proces, który przejmie wszystkie aktywne połączenia, po czym zatrzyma stary proces pgbouncera. Możemy w ten sposób zmieniać parametry wymagające restartu lub wykonać upgrade pgbounera.

Top comments (0)