Re: (13.1) pg_basebackups ./. pg_verifybackup - Mailing list pgsql-general

From Matthias Apitz
Subject Re: (13.1) pg_basebackups ./. pg_verifybackup
Date
Msg-id YRJJMf2RGGNJbHJZ@c720-r368166
Whole thread Raw
In response to Re: (13.1) pg_basebackups ./. pg_verifybackup  (Matthias Apitz <guru@unixarea.de>)
Responses Re: (13.1) pg_basebackups ./. pg_verifybackup
List pgsql-general
El día martes, agosto 10, 2021 a las 09:23:34a. m. +0200, Matthias Apitz escribió:

> I've studied now the fine docs again and have some additional questions. The
> backup was done fine to the directory /data/postgresql133/backup-20210810-1
> which contains now:
> 
> $ ls -l
> total 717252
> -rw------- 1 postgres postgres    430331 Aug 10 08:54 backup_manifest
> -rw------- 1 postgres postgres 734006592 Aug 10 08:54 base.tar.gz
> -rw------- 1 postgres postgres     17667 Aug 10 08:54 pg_wal.tar.gz
> 
> I un-tar'ed the two archives with
> 
> $ tar xzf base.tar.gz
> $ tar xzf pg_wal.tar.gz
> 
> And then I run pg_verifybackup it gives the following errors:
> 
> $ pg_verifybackup /data/postgresql133/backup-20210810-1
> pg_verifybackup: error: "0000000100000000000000D9" is present on disk but not in the manifest
> pg_verifybackup: error: "pg_wal.tar.gz" is present on disk but not in the manifest
> pg_verifybackup: error: "base.tar.gz" is present on disk but not in the manifest
> pg_verifybackup: error: "archive_status/0000000100000000000000D9.done" is present on disk but not in the manifest
> pg_waldump: fatal: could not find any WAL file
> pg_verifybackup: error: WAL parsing failed for timeline 1
> 
> The two messages about the present of pg_wal.tar.gz and base.tar.gz are
> clear. One could move the archives out of the sight of pg_verifybackup.
> But the others are unclear to me. The files 0000000100000000000000D9 and
> archive_status/0000000100000000000000D9.done are part of pg_wal.tar.gz
> written by pg_basebackup:
> 
> tar tvf pg_wal.tar.gz
> -rw------- postgres/postgres 16777216 2021-08-10 08:52 0000000100000000000000D9
> -rw------- postgres/postgres        0 2021-08-10 08:54 archive_status/0000000100000000000000D9.done
> 
> About WAL the file backup_manifest contains only:
> 
> "WAL-Ranges": [
> { "Timeline": 1, "Start-LSN": "0/D9000028", "End-LSN": "0/D9000138" }
> ],
> 
> What is the problem here or what I've missed?
> Thanks

I think, I sorted it out by doing this:

I moved away the tar-archives:

$ cd /data/postgresql133/backup-20210810-1
$ mkdir ../saved
$ mv *.tar.gz ../saved

I unpacked 'base.tar.gz' the usual way:

$ tar xzf ../saved/base.tar.gz

but 'pg_wal.tar.gz' in the sub dir 'pg_wal':

$ cd pg_wal
$ tar xzf ../../saved/pg_wal.tar.gz
$ cd ..
$ find pg_wal
pg_wal
pg_wal/0000000100000000000000D9
pg_wal/archive_status
pg_wal/archive_status/0000000100000000000000D9.done

now pg_verifybackup seems to be happy:

$ pg_verifybackup  /data/postgresql133/backup-20210810-1
backup successfully verified

Is this the supposed way it should work? Esp. this unpacking of
'pg_wal.tar.gz' in a directory level below?

Ofc, one could specify the location of the WAL file with '-w path', but
the doc only suggests this when "Try to parse WAL files stored in the
specified directory, rather than in pg_wal. This may be useful if the
backup is stored in a separate location from the WAL archive."

But having to unpack 'pg_wal.tar.gz' below pg_wal is not obvious. 

    matthias


-- 
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
27.7.1900: Kaiser Wilhelm II Deutsches Ostasiatisches Expeditionskorps,   target China
02.8.2021: Deutsche Kriegsministerin Kramp-Karrenbauer Fregatte "Bayern", target China



pgsql-general by date:

Previous
From: ourdiaspora
Date:
Subject: Re: php connection failure
Next
From: Tom Lane
Date:
Subject: Re: php connection failure