PostgreSQL 18.7: Start a New Full Backup Before the Next Incremental
PostgreSQL 18.7 warns about existing native incremental backups. Build a fresh full baseline, check the next job’s dependency, and rehearse recovery.
DM
Suppose your PostgreSQL backup job finished last night and the monitoring dashboard is green. This morning you read the PostgreSQL 18.7 release notes and discover that the existing incremental backup files may be unreliable. The job succeeded at creating files. You still need to establish which recovery point you can trust.
For PostgreSQL 18 users of native incremental backups, the 18.7 migration notes recommend taking a new full backup after updating and using it as the foundation for later incrementals. The release is dated 12 November 2026. Plan that backup and a restore rehearsal alongside the update. If your backup product implements its own incremental format, check its vendor’s guidance before applying the native PostgreSQL procedure.
The same migration notes call for reviewing entries about affected indexes and REINDEX, and earlier migration notes when upgrading from before 18.6. Treat the backup work as one part of the update. Inventory extensions and follow the full release guidance for your installation. For a managed database, ask the provider which server and backup components it has updated.
First find out what your backup job actually runs. Native physical backups made with pg_basebackup can form an incremental chain. A logical pg_dump archive, a storage snapshot and a third-party backup repository have different recovery procedures. In your inventory, record the PostgreSQL server version, backup tool and version, last full backup, dependent incrementals, WAL archive location and the recovery target you need.
The pg_basebackup manual explains that an incremental backup needs earlier backups to reconstruct a usable full backup. Imagine Monday holds the full copy and Tuesday and Wednesday hold changes. A new Thursday full backup starts a new chain. Pointing Friday at Wednesday’s manifest would keep the old dependency. Inspect the next job’s configured reference and its output rather than assuming the new full backup automatically changed the schedule.
Keep the existing recovery material while you build the replacement. Label the old native incremental chain with the release warning and avoid treating it as a verified fallback. Deleting one link can also remove a recovery option you still need. Choose retention changes only after the new chain has passed the recovery checks and your organization’s retention requirements are covered.
After updating and creating the new full backup, verify its manifest and files with the matching PostgreSQL tools. For a plain-format backup in a staging directory, the command below illustrates the check. Substitute the real path and use a supported tool version for that backup.
pg_verifybackup /srv/backup-rehearsal/new-fullThe pg_verifybackup documentation describes the checks and their limits. Passing them still leaves the restore rehearsal to do. Start the recovered database in an isolated environment, keep application writers and outbound integrations controlled, and check a few records whose expected state you know. Then run a safe application read through the normal application role.
Once a later incremental exists in the new chain, rehearse recovering that point as well. pg_combinebackup takes the required backups from oldest to newest to produce a full backup for recovery. Its chain checks and file integrity checks serve different purposes. Record the inputs and the recovered data you checked so another operator can repeat the drill.
A separate self-managed Krova Cube can host the recovery rehearsal. Provision enough space for the source backups and reconstructed output. The existing backup-to-working-app walkthrough covers the application checks for a logical restore. Use the physical recovery procedure for this incremental chain.
Before closing the maintenance work, record three things together. The running server is updated, future incremental jobs reference the new full backup, and a restore from the new chain reaches the expected data. A fresh baseline earns its place in the runbook through that evidence.
This article was prepared with AI assistance from the linked PostgreSQL documentation. The backup timeline and command path are hypothetical. The procedure was reviewed against documentation and was not executed against a database.
Give the recovery drill its own Cube
Rehearse the physical restore on a separate self-managed Linux environment before relying on the new backup chain.




