Does PgBouncer create a separate pool for every database config entry?

Yes, pgbouncer creates a separate pool for each database. You really don't want a pool size as big as 250 in a scenario like this - because that is 250 connections from pgbouncer to the postgres server for each database.

The max of 480 is the total number of connections from clients into pgbouncer, regardless of which database they go into.


Would I have a default pool of 250 for each DB and a max of 480, or a total of 250 default and max of 480 connections that are shared between both?

You will have one pool per DB per user (or role) of you omit specifying user in db1 or db2 lines inside [databases] section. Though you can enforce connecting with some predefined user if you want.

You kind of misunderstood what max_client_conn is . It is the "lightweight" connections limit. The max connections made TO pgbouncer not to database server.