When it comes to managing PostgreSQL backups in production, pgBackRest has consistently stood out as one of the most powerful, flexible, and enterprise-ready solutions available. I recently implemented pgBackRest in a native PostgreSQL environment and found it not only reliable and secure but also impressively scalable, especially when paired with the latest feature updates.
In this post, I’ll walk you through the key version changes from pgBackRest 2.45 to 2.55.1, spotlighting major enhancements and quality-of-life improvements introduced across recent releases, including the game-changing 2.53. Whether you’re setting up pgBackRest for the first time or looking to optimize your existing deployment, these updates bring significant value to modern PostgreSQL operations.
From stable to smarter: What’s changed since v2.45?
Version 2.45 introduced block incremental backups (beta), a major step toward faster and more storage-efficient backups by only saving changed blocks.
Over subsequent versions, this feature matured alongside improvements to recovery workflows (e.g., better handling of recovery.signal), logging defaults, and usability documentation.
 Highlights from v2.53 and beyond
Concurrent Backup Support: Now you can run full, diff, or incr backups across multiple repositories simultaneously, critical for high-availability (HA) and cloud-native setups.
Smarter Logging & TLS Enhancements: Defaults like log-level-stderr=off, better SFTP error reporting, and IP SAN validation in TLS configs improve security and clarity.
Cloud-Ready Features: With enhanced encryption, object storage support, and batch cleanup capabilities, pgBackRest is more aligned than ever with hybrid and cloud-first environments.
These enhancements reflect pgBackRest’s core philosophy: high performance, cloud compatibility, and zero-compromise data safety.
Make sure to read our previous blog posts on this topic:
Configuration of pgBackrest
Do these steps on the primary and replica using a ‘repo’ of the pgbackrest.
- sudo mkdir -p /var/lib/pgbackrest
- sudo chmod 0750 /var/lib/pgbackrest
- sudo chown -R postgres:postgres /var/lib/pgbackrest
- sudo chown -R postgres:postgres /var/log/pgbackrest
- sudo cp /etc/pgbackrest.conf /etc/pgbackrest.conf.backup
- sudo chmod 755 /usr/bin/pgbackrest
Configure your replica(repo) – vi /etc/pgbackrest.conf

Configure your replica(repo) – vi /etc/pgbackrest.conf

We have configured both the primary and the standby server.
Initialize pgBackRest on the Replica (Repo Host)
In the replica server (repo host), log in as the postgres user and execute the following commands to create the stanza, verify the configuration, and perform an initial backup.
Step 1: Create the Stanza
pgbackrest stanza-create –stanza=test –log-level-console=info
This command sets up the necessary internal metadata and prepares the repository for backups under the test stanza.
Step 2: Check the Stanza Configuration
pgbackrest –stanza=test –config=/etc/pgbackrest.conf check
This verifies communication between the primary and repository and checks PostgreSQL configuration for backup readiness.
Step 3: Run a Backup
pgbackrest backup –stanza=test –log-level-console=info
Starts a backup using the configuration. You can also specify --type=full, --type=diff, or --type=incr.
Step 4: View Backup Info
pgbackrest –stanza=test info
Displays a summary of completed backups, sizes, and WAL coverage.
Automating pgBackRest Backups
After successfully setting up and verifying pgBackRest for managing PostgreSQL backups, the next step was to automate the backup process to ensure regular and reliable protection of data, without the need for manual intervention.
To achieve this, I used cron, a built-in job scheduler on most Linux systems. Cron allows you to schedule commands to run at specific intervals (daily, weekly, etc.), making it ideal for automating backup tasks like full, differential, or incremental backups.
By setting up automated backup jobs with pgBackRest, I was able to establish a consistent and efficient backup routine that reduces risk, improves disaster recovery readiness, and eliminates the chance of missed backups due to human error.
pgBackRest uses different commands for different backup types:
Preparing backup commands:
- Full backup (usually once a week)
- pgbackrest –stanza=test backup –type=full
- Differential backup (between full backups)
- pgbackrest –stanza=test backup –type=diff
- Incremental backup (daily or multiple times a day)
- pgbackrest –stanza=test backup –type=incr
Implementing a common and effective rotation strategy using crontab:
- Full backup every Friday at 2:00 AM.
- Incremental backup on all other days at 2:00 AM.
This balances reliability and performance, keeping the backup window short on most days while ensuring weekly full recovery points.
crontab -e
0 2 * * 5 pgbackrest –stanza=test –type=full backup >> /var/log/pgbackrest/test-backup.log 2>&1
0 2 * * 0,1,2,3,4,6 pgbackrest –stanza=test –type=incr backup >> /var/log/pgbackrest/test-backup.log 2>&1
This rotation balances backup time and recovery reliability while minimizing storage usage.
Conclusion:
The transition from pgBackRest 2.45 to 2.55.1 represents more than just incremental upgrades—it reflects a strategic leap in backup management for PostgreSQL. With block-level incremental backups, concurrent repo support, and enhanced automation tools, pgBackRest is ready to meet the demands of both On-prem and cloud-native PostgreSQL infrastructures.
If you haven’t updated or implemented automation yet, now’s the time to explore these powerful features. Backups shouldn’t just be reliable, they should be smart, efficient, and hands-off.
