pgsql: pg_waldump: Add --save-fullpage=PATH to save full page images fr - Mailing list pgsql-committers

From Michael Paquier
Subject pgsql: pg_waldump: Add --save-fullpage=PATH to save full page images fr
Date
Msg-id E1p9wtD-000a5w-56@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
pg_waldump: Add --save-fullpage=PATH to save full page images from WAL records

This option extracts (potentially decompressing) full-page images
included in WAL records into a given target directory.  These images are
subject to the same filtering rules as the normal display of the WAL
records, hence with --relation one can for example extract only the FPIs
issued on the relation defined.  By default, the records are printed or
their stats computed (--stats), using --quiet would only save the images
without any output generated.

This is a tool aimed mostly for very experienced users, useful for
fixing page-level corruption or just analyzing the past state of a page,
and there were no easy way to do that with the in-core tools up to now
when looking at WAL.

Each block is saved in a separate file, to ease their manipulation, with
the file respecting <lsn>.<ts>.<db>.<rel>.<blk>_<fork> with as format.

For instance, 00000000-010000C0.1663.1.6117.123_main refers to:
- WAL record LSN in hexa format (00000000-010000C0).
- Tablespace OID (1663).
- Database OID (1).
- Relfilenode (6117).
- Block number (123).
- Fork name of the file this block came from (_main).

Author: David Christensen
Reviewed-by: Sho Kato, Justin Pryzby, Bharath Rupireddy, Matthias van de
Meent
Discussion: https://postgr.es/m/CAOxo6XKjQb2bMSBRpePf3ZpzfNTwjQUc4Tafh21=jzjX6bX8CA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d497093cbecccf6df26365e06a5f8f8614b591c8

Modified Files
--------------
doc/src/sgml/ref/pg_waldump.sgml          |  66 ++++++++++++++++++
src/bin/pg_waldump/meson.build            |   1 +
src/bin/pg_waldump/pg_waldump.c           | 108 +++++++++++++++++++++++++++++
src/bin/pg_waldump/t/002_save_fullpage.pl | 111 ++++++++++++++++++++++++++++++
4 files changed, 286 insertions(+)


pgsql-committers by date:

Previous
From: Amit Kapila
Date:
Subject: pgsql: Add 'logical_decoding_mode' GUC.
Next
From: Michael Paquier
Date:
Subject: pgsql: Fix incorrect copy-pasto in error message of pg_waldump.c