Re: Add system identifier to backup manifest

Amul Sul <sulamul@gmail.com>

From: Amul Sul <sulamul@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2024-01-17T12:03:31Z
Lists: pgsql-hackers
On Wed, Jan 17, 2024 at 5:15 PM Alvaro Herrera <alvherre@alvh.no-ip.org>
wrote:

> On 2024-Jan-17, Amul Sul wrote:
>
> > This helps to identify the correct database server and/or backup for the
> > subsequent backup operations.  pg_verifybackup validates the manifest
> system
> > identifier against the backup control file and fails if they don’t match.
> > Similarly, pg_basebackup increment backup will fail if the manifest
> system
> > identifier does not match with the server system identifier.  The
> > pg_combinebackup is already a bit smarter -- checks the system identifier
> > from
> > the pg_control of all the backups, with this patch the manifest system
> > identifier also validated.
>
> Hmm, okay, but what if I take a full backup from a primary server and
> later I want an incremental from a standby, or the other way around?
> Will this prevent me from using such a combination?
>

Yes, that worked for me where the system identifier was the same on
master as well standby.

Regards,
Amul

Commits

  1. Add the system identifier to backup manifests.

  2. pg_verifybackup: Refactor parse_manifest_file.

  3. Add option force_initdb to PostgreSQL::Test::Cluster:init()