416 lines
13 KiB
Plaintext
416 lines
13 KiB
Plaintext
<!--
|
|
doc/src/sgml/ref/pg_waldump.sgml
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="pgwaldump">
|
|
<indexterm zone="pgwaldump">
|
|
<primary>pg_waldump</primary>
|
|
</indexterm>
|
|
|
|
<refmeta>
|
|
<refentrytitle><application>pg_waldump</application></refentrytitle>
|
|
<manvolnum>1</manvolnum>
|
|
<refmiscinfo>Application</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>pg_waldump</refname>
|
|
<refpurpose>display a human-readable rendering of the write-ahead log of a <productname>PostgreSQL</productname> database cluster</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>pg_waldump</command>
|
|
<arg rep="repeat" choice="opt"><option>option</option></arg>
|
|
<arg choice="opt"><option>startseg</option><arg choice="opt"><option>endseg</option></arg></arg>
|
|
</cmdsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1 id="r1-app-pgwaldump-1">
|
|
<title>Description</title>
|
|
<para>
|
|
<command>pg_waldump</command> displays the write-ahead log (WAL) and is mainly
|
|
useful for debugging or educational purposes.
|
|
</para>
|
|
|
|
<para>
|
|
This utility can only be run by the user who installed the server, because
|
|
it requires read-only access to the data directory.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Options</title>
|
|
|
|
<para>
|
|
The following command-line options control the location and format of the
|
|
output:
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">startseg</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
Start reading at the specified WAL segment file. This implicitly determines
|
|
the path in which files will be searched for, and the timeline to use.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">endseg</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
Stop after reading the specified WAL segment file.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-b</option></term>
|
|
<term><option>--bkp-details</option></term>
|
|
<listitem>
|
|
<para>
|
|
Output detailed information about backup blocks.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-B <replaceable>block</replaceable></option></term>
|
|
<term><option>--block=<replaceable>block</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records that modify the given block. The relation must
|
|
also be provided with <option>--relation</option> or
|
|
<option>-R</option>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-e <replaceable>end</replaceable></option></term>
|
|
<term><option>--end=<replaceable>end</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Stop reading at the specified WAL location, instead of reading to the
|
|
end of the log stream.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-f</option></term>
|
|
<term><option>--follow</option></term>
|
|
<listitem>
|
|
<para>
|
|
After reaching the end of valid WAL, keep polling once per second for
|
|
new WAL to appear.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-F <replaceable>fork</replaceable></option></term>
|
|
<term><option>--fork=<replaceable>fork</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records that modify blocks in the given fork.
|
|
The valid values are <literal>main</literal> for the main fork,
|
|
<literal>fsm</literal> for the free space map,
|
|
<literal>vm</literal> for the visibility map,
|
|
and <literal>init</literal> for the init fork.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-n <replaceable>limit</replaceable></option></term>
|
|
<term><option>--limit=<replaceable>limit</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Display the specified number of records, then stop.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-p <replaceable>path</replaceable></option></term>
|
|
<term><option>--path=<replaceable>path</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies a directory to search for WAL segment files or a
|
|
directory with a <literal>pg_wal</literal> subdirectory that
|
|
contains such files. The default is to search in the current
|
|
directory, the <literal>pg_wal</literal> subdirectory of the
|
|
current directory, and the <literal>pg_wal</literal> subdirectory
|
|
of <envar>PGDATA</envar>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-q</option></term>
|
|
<term><option>--quiet</option></term>
|
|
<listitem>
|
|
<para>
|
|
Do not print any output, except for errors. This option can be useful
|
|
when you want to know whether a range of WAL records can be
|
|
successfully parsed but don't care about the record contents.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-r <replaceable>rmgr</replaceable></option></term>
|
|
<term><option>--rmgr=<replaceable>rmgr</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records generated by the specified resource manager. You can
|
|
specify the option multiple times to select multiple resource managers.
|
|
If <literal>list</literal> is passed as name, print a list of valid resource manager
|
|
names, and exit.
|
|
</para>
|
|
<para>
|
|
Extensions may define custom resource managers, but
|
|
<application>pg_waldump</application> does
|
|
not load the extension module and therefore does not recognize custom
|
|
resource managers by name. Instead, you can specify the custom
|
|
resource managers as <literal>custom###</literal> where
|
|
<replaceable>###</replaceable> is the three-digit resource manager ID.
|
|
Names of this form will always be considered valid.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-R <replaceable>tblspc</replaceable>/<replaceable>db</replaceable>/<replaceable>rel</replaceable></option></term>
|
|
<term><option>--relation=<replaceable>tblspc</replaceable>/<replaceable>db</replaceable>/<replaceable>rel</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records that modify blocks in the given relation. The
|
|
relation is specified with tablespace OID, database OID, and relfilenode
|
|
separated by slashes, for example <literal>1234/12345/12345</literal>.
|
|
This is the same format used for relations in the program's output.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-s <replaceable>start</replaceable></option></term>
|
|
<term><option>--start=<replaceable>start</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
WAL location at which to start reading. The default is to start reading
|
|
the first valid WAL record found in the earliest file found.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-t <replaceable>timeline</replaceable></option></term>
|
|
<term><option>--timeline=<replaceable>timeline</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Timeline from which to read WAL records. The default is to use the
|
|
value in <replaceable>startseg</replaceable>, if that is specified; otherwise, the
|
|
default is 1. The value can be specified in decimal or hexadecimal,
|
|
for example <literal>17</literal> or <literal>0x11</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-V</option></term>
|
|
<term><option>--version</option></term>
|
|
<listitem>
|
|
<para>
|
|
Print the <application>pg_waldump</application> version and exit.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-w</option></term>
|
|
<term><option>--fullpage</option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records that include full page images.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-x <replaceable>xid</replaceable></option></term>
|
|
<term><option>--xid=<replaceable>xid</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Only display records marked with the given transaction ID.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-z</option></term>
|
|
<term><option>--stats[=record]</option></term>
|
|
<listitem>
|
|
<para>
|
|
Display summary statistics (number and size of records and
|
|
full-page images) instead of individual records. Optionally
|
|
generate statistics per-record instead of per-rmgr.
|
|
</para>
|
|
|
|
<para>
|
|
If <application>pg_waldump</application> is terminated by signal
|
|
<systemitem>SIGINT</systemitem>
|
|
(<keycombo action="simul"><keycap>Control</keycap><keycap>C</keycap></keycombo>),
|
|
the summary of the statistics computed is displayed up to the
|
|
termination point. This operation is not supported on
|
|
<productname>Windows</productname>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--save-fullpage=<replaceable>save_path</replaceable></option></term>
|
|
<listitem>
|
|
<para>
|
|
Save full page images found in the WAL records to the
|
|
<replaceable>save_path</replaceable> directory. The images saved
|
|
are subject to the same filtering and limiting criteria as the
|
|
records displayed.
|
|
</para>
|
|
<para>
|
|
The full page images are saved with the following file name format:
|
|
<literal><replaceable>TIMELINE</replaceable>-<replaceable>LSN</replaceable>.<replaceable>RELTABLESPACE</replaceable>.<replaceable>DATOID</replaceable>.<replaceable>RELNODE</replaceable>.<replaceable>BLKNO</replaceable><replaceable>FORK</replaceable></literal>
|
|
|
|
The file names are composed of the following parts:
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Component</entry>
|
|
<entry>Description</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>TIMELINE</entry>
|
|
<entry>The timeline of the WAL segment file where the record
|
|
is located formatted as one 8-character hexadecimal number
|
|
<literal>%08X</literal></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>LSN</entry>
|
|
<entry>The <acronym>LSN</acronym> of the record with this image,
|
|
formatted as two 8-character hexadecimal numbers
|
|
<literal>%08X-%08X</literal></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>RELTABLESPACE</entry>
|
|
<entry>tablespace OID of the block</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DATOID</entry>
|
|
<entry>database OID of the block</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>RELNODE</entry>
|
|
<entry>filenode of the block</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>BLKNO</entry>
|
|
<entry>block number of the block</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>FORK</entry>
|
|
<entry>
|
|
The name of the fork the full page image came from, such as
|
|
<literal>_main</literal>, <literal>_fsm</literal>,
|
|
<literal>_vm</literal>, or <literal>_init</literal>.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-?</option></term>
|
|
<term><option>--help</option></term>
|
|
<listitem>
|
|
<para>
|
|
Show help about <application>pg_waldump</application> command line
|
|
arguments, and exit.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Environment</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><envar>PGDATA</envar></term>
|
|
<listitem>
|
|
<para>
|
|
Data directory; see also the <option>-p</option> option.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><envar>PG_COLOR</envar></term>
|
|
<listitem>
|
|
<para>
|
|
Specifies whether to use color in diagnostic messages. Possible values
|
|
are <literal>always</literal>, <literal>auto</literal> and
|
|
<literal>never</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Notes</title>
|
|
<para>
|
|
Can give wrong results when the server is running.
|
|
</para>
|
|
|
|
<para>
|
|
Only the specified timeline is displayed (or the default, if none is
|
|
specified). Records in other timelines are ignored.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_waldump</application> cannot read WAL files with suffix
|
|
<literal>.partial</literal>. If those files need to be read, <literal>.partial</literal>
|
|
suffix needs to be removed from the file name.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="wal-internals"/></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
|
|
</refentry>
|