Subject: Pgbackrest setup for two sites with limited bandwidth

From: Radu Radutiu <[email-masked]>
Date: Mon, 10 Nov 2025 14:22:38 +0200

Hello,

Is it possible to configure pgbackrest for a postgresql server pair using
physical replication on two different sites with limited bandwidth (i.e.
sufficient for data replication but not daily backups)? All tutorials and
blogs describe a setup with either a single pgbackrest repo or multiple
repos configured on the primary server. I am looking for a solution that
has a second pgbackrest server on a secondary site that receives backups
and WALs from the standby server in order to avoid most of the additional
network traffic for backups/WALs. Is such a setup possible with pgbackrest
or other PostgreSQL backups solutions?

Best regards,
Radu

---

From: Greg Sabino Mullane <[email-masked]>
Date: Mon, 10 Nov 2025 10:33:20 -0500

What you are asking for is tricky, but possible. You can setup two repos,
one for each server. On the first server (in datacenter A), you have a
"normal" pgbackrest configuration, with an explicit backup-standby=n. pg1-*
points to the local server, pg2-* points to the replica. The repo is in
datacenter A.Backups run from PG server in datacenter A, to the backrest
repo in datacenter A. WAL is archived from A -> A

On datacenter B, you have a separate local repo, a different stanza name,
and within that stanza, you have backup-standby=y, pg1 pointing to the
local pg, pg2 pointing back to A. In the postgresql.conf, your
archive-command pushes to this second repo, and archive_mode is "always".
Backups run from the PG server in datacenter A, but 99% of the files are
actually copied from the replica in datacenter B, and goes to the backrest
server in datacenter B. WAL is archived from B -> B.

That's the basic idea. It falls apart rapidly if this second data center
ever fails over.
Cheers,
Greg

--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support

---

From: Radu Radutiu <[email-masked]>
Date: Mon, 10 Nov 2025 17:49:00 +0200

Thank you. I was thinking along the same lines, but I am not sure I
understand why the setup will fall apart on failover. If I also have
archive_mode always on the primary site, I think that I just need to
pg_rewind (or PITR restore) old primary and configure it as a secondary to
the new master followed by a local backup. Am I missing something obvious?

Regards,
Radu