PgBouncer Postgres connection pooler
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
psql -p 6432 pgbouncer
SHOW POOLS;SHOW STATS;SHOW CLIENTS;SHOW SERVERS;RELOAD;PAUSE;RESUME;Concepts
- Client many connections
- PgBouncer pools by db + user
- PostgreSQL port 5432
Run and signals
pgbouncer <pgbouncer.ini>
pgbouncer -d <pgbouncer.ini>
pgbouncer --version
kill -HUP <pid>
kill -TERM <pid>
Connect to the console
psql -p 6432 pgbouncer
psql -h <host> -p 6432 -U <admin>
pgbouncer
psql -p 6432 -U <user> <db>
Inspect (SHOW)
SHOW POOLS;SHOW STATS;SHOW CLIENTS;SHOW SERVERS;SHOW DATABASES;SHOW CONFIG;SHOW STATE;Control
RELOAD;PAUSE;RESUME;PAUSE <db>;
RESUME <db>;
RECONNECT <db>;
KILL_CLIENT <id>;
SET <key> = <value>;
SHUTDOWN WAIT_FOR_CLIENTS;
pgbouncer.ini: pooling
pool_mode = transaction
max_client_conn = <n>
default_pool_size = <n>
server_reset_query = DISCARD ALL
ignore_startup_parameters = <p>
max_prepared_statements = <n>
pgbouncer.ini: network and auth
listen_addr = <addr>
listen_port = 6432
auth_type = scram-sha-256
auth_file = <path>
auth_user = <user>
auth_query = <sql>
admin_users = <list>
stats_users = <list>
pgbouncer.ini: timeouts and logs
query_wait_timeout = <sec>
server_idle_timeout = <sec>
logfile = <path>
Recipes
[databases]appdb = host=10.0.0.5 port=5432 dbname=app pool_size=30reports = host=10.0.0.6 pool_mode=session* = host=10.0.0.5
[databases]appdb = host=127.0.0.1 port=5432 dbname=app[pgbouncer]listen_addr = 0.0.0.0listen_port = 6432auth_type = scram-sha-256auth_file = /etc/pgbouncer/userlist.txtadmin_users = adminpool_mode = transactionmax_client_conn = 1000default_pool_size = 20
psql -p 6432 -U admin pgbouncer -c 'PAUSE;'# restart or fail over PostgreSQL herepsql -p 6432 -U admin pgbouncer -c 'RESUME;'
psql -p 6432 -U admin pgbouncer# cl_waiting > 0 means the pool is exhaustedSHOW POOLS;SHOW SERVERS;SHOW CLIENTS;
# edit pgbouncer.ini, then:psql -p 6432 -U admin pgbouncer -c 'RELOAD;'psql -p 6432 -U admin pgbouncer -c 'SHOW CONFIG;'



