Re: Allow specifying a dbname in pg_basebackup connection string

Thom Brown <thom@linux.com>

From: Thom Brown <thom@linux.com>
To: Jelte Fennema <postgres@jeltef.nl>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-07-05T12:43:35Z
Lists: pgsql-hackers
On Mon, 3 Jul 2023 at 13:23, Jelte Fennema <postgres@jeltef.nl> wrote:
>
> Normally it doesn't really matter which dbname is used in the connection
> string that pg_basebackup and other physical replication CLI tools use.
> The reason being, that physical replication does not work at the
> database level, but instead at the server level. So you will always get
> the data for all databases.
>
> However, when there's a proxy, such as PgBouncer, in between the client
> and the server, then it might very well matter. Because this proxy might
> want to route the connection to a different server depending on the
> dbname parameter in the startup packet.
>
> This patch changes the creation of the connection string key value
> pairs, so that the following command will actually include
> dbname=postgres in the startup packet to the server:
>
> pg_basebackup --dbname 'dbname=postgres port=6432' -D dump

I guess my immediate question is, should backups be taken through
PgBouncer?  It seems beyond PgBouncer's remit.

Thom