psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;"
</programlisting>
However, it is often more useful to use
- <xref linkend="app-pgreceivexlog"> (for physical replication) or
+ <xref linkend="app-pgreceivewal"> (for physical replication) or
<xref linkend="app-pgrecvlogical"> (for logical replication).
</para>
<!ENTITY pgDump SYSTEM "pg_dump.sgml">
<!ENTITY pgDumpall SYSTEM "pg_dumpall.sgml">
<!ENTITY pgIsready SYSTEM "pg_isready.sgml">
-<!ENTITY pgReceivexlog SYSTEM "pg_receivexlog.sgml">
+<!ENTITY pgReceivewal SYSTEM "pg_receivewal.sgml">
<!ENTITY pgRecvlogical SYSTEM "pg_recvlogical.sgml">
-<!ENTITY pgResetxlog SYSTEM "pg_resetxlog.sgml">
+<!ENTITY pgResetwal SYSTEM "pg_resetwal.sgml">
<!ENTITY pgRestore SYSTEM "pg_restore.sgml">
<!ENTITY pgRewind SYSTEM "pg_rewind.sgml">
<!ENTITY pgtestfsync SYSTEM "pgtestfsync.sgml">
<!ENTITY pgtesttiming SYSTEM "pgtesttiming.sgml">
<!ENTITY pgupgrade SYSTEM "pgupgrade.sgml">
-<!ENTITY pgxlogdump SYSTEM "pg_xlogdump.sgml">
+<!ENTITY pgwaldump SYSTEM "pg_waldump.sgml">
<!ENTITY postgres SYSTEM "postgres-ref.sgml">
<!ENTITY postmaster SYSTEM "postmaster.sgml">
<!ENTITY psqlRef SYSTEM "psql-ref.sgml">
<!--
-doc/src/sgml/ref/pg_receivexlog.sgml
+doc/src/sgml/ref/pg_receivewal.sgml
PostgreSQL documentation
-->
-<refentry id="app-pgreceivexlog">
- <indexterm zone="app-pgreceivexlog">
- <primary>pg_receivexlog</primary>
+<refentry id="app-pgreceivewal">
+ <indexterm zone="app-pgreceivewal">
+ <primary>pg_receivewal</primary>
</indexterm>
<refmeta>
- <refentrytitle>pg_receivexlog</refentrytitle>
+ <refentrytitle>pg_receivewal</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>pg_receivexlog</refname>
+ <refname>pg_receivewal</refname>
<refpurpose>stream transaction logs from a <productname>PostgreSQL</productname> server</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
- <command>pg_receivexlog</command>
+ <command>pg_receivewal</command>
<arg rep="repeat"><replaceable>option</></arg>
</cmdsynopsis>
</refsynopsisdiv>
Description
</title>
<para>
- <application>pg_receivexlog</application> is used to stream the transaction log
+ <application>pg_receivewal</application> is used to stream the transaction log
from a running <productname>PostgreSQL</productname> cluster. The transaction
log is streamed using the streaming replication protocol, and is written
to a local directory of files. This directory can be used as the archive
</para>
<para>
- <application>pg_receivexlog</application> streams the transaction
+ <application>pg_receivewal</application> streams the transaction
log in real time as it's being generated on the server, and does not wait
for segments to complete like <xref linkend="guc-archive-command"> does.
For this reason, it is not necessary to set
<xref linkend="guc-archive-timeout"> when using
- <application>pg_receivexlog</application>.
+ <application>pg_receivewal</application>.
</para>
<para>
- Unlike the WAL receiver of a PostgreSQL standby server, <application>pg_receivexlog</>
+ Unlike the WAL receiver of a PostgreSQL standby server, <application>pg_receivewal</>
by default flushes WAL data only when a WAL file is closed.
The option <option>--synchronous</> must be specified to flush WAL data
in real time.
<para>
If the connection is lost, or if it cannot be initially established,
- with a non-fatal error, <application>pg_receivexlog</application> will
+ with a non-fatal error, <application>pg_receivewal</application> will
retry the connection indefinitely, and reestablish streaming as soon
as possible. To avoid this behavior, use the <literal>-n</literal>
parameter.
<term><option>--slot=<replaceable class="parameter">slotname</replaceable></option></term>
<listitem>
<para>
- Require <application>pg_receivexlog</application> to use an existing
+ Require <application>pg_receivewal</application> to use an existing
replication slot (see <xref linkend="streaming-replication-slots">).
- When this option is used, <application>pg_receivexlog</> will report
+ When this option is used, <application>pg_receivewal</> will report
a flush position to the server, indicating when each segment has been
synchronized to disk so that the server can remove that segment if it
is not otherwise needed.
<para>
When the replication client
- of <application>pg_receivexlog</application> is configured on the
+ of <application>pg_receivewal</application> is configured on the
server as a synchronous standby, then using a replication slot will
report the flush position to the server, but only when a WAL file is
closed. Therefore, that configuration will cause transactions on the
<para>
This option should be specified if the replication client
- of <application>pg_receivexlog</application> is configured on the
+ of <application>pg_receivewal</application> is configured on the
server as a synchronous standby, to ensure that timely feedback is
sent to the server.
</para>
</para>
<para>
The option is called <literal>--dbname</> for consistency with other
- client applications, but because <application>pg_receivexlog</application>
+ client applications, but because <application>pg_receivewal</application>
doesn't connect to any particular database in the cluster, database
name in the connection string will be ignored.
</para>
<term><option>--password</option></term>
<listitem>
<para>
- Force <application>pg_receivexlog</application> to prompt for a
+ Force <application>pg_receivewal</application> to prompt for a
password before connecting to a database.
</para>
<para>
This option is never essential, since
- <application>pg_receivexlog</application> will automatically prompt
+ <application>pg_receivewal</application> will automatically prompt
for a password if the server demands password authentication.
- However, <application>pg_receivexlog</application> will waste a
+ However, <application>pg_receivewal</application> will waste a
connection attempt finding out that the server wants a password.
In some cases it is worth typing <option>-W</> to avoid the extra
connection attempt.
</para>
<para>
- <application>pg_receivexlog</application> can perform one of the two
+ <application>pg_receivewal</application> can perform one of the two
following actions in order to control physical replication slots:
<variablelist>
<term><option>--version</></term>
<listitem>
<para>
- Print the <application>pg_receivexlog</application> version and exit.
+ Print the <application>pg_receivewal</application> version and exit.
</para>
</listitem>
</varlistentry>
<term><option>--help</></term>
<listitem>
<para>
- Show help about <application>pg_receivexlog</application> command line
+ Show help about <application>pg_receivewal</application> command line
arguments, and exit.
</para>
</listitem>
<title>Notes</title>
<para>
- When using <application>pg_receivexlog</application> instead of
+ When using <application>pg_receivewal</application> instead of
<xref linkend="guc-archive-command"> as the main WAL backup method, it is
strongly recommended to use replication slots. Otherwise, the server is
free to recycle or remove transaction log files before they are backed up,
<literal>mydbserver</literal> and store it in the local directory
<filename>/usr/local/pgsql/archive</filename>:
<screen>
-<prompt>$</prompt> <userinput>pg_receivexlog -h mydbserver -D /usr/local/pgsql/archive</userinput>
+<prompt>$</prompt> <userinput>pg_receivewal -h mydbserver -D /usr/local/pgsql/archive</userinput>
</screen></para>
</refsect1>
<para>
It creates a replication-mode connection, so it is subject to the same
- constraints as <xref linkend="app-pgreceivexlog">, plus those for logical
+ constraints as <xref linkend="app-pgreceivewal">, plus those for logical
replication (see <xref linkend="logicaldecoding">).
</para>
<listitem>
<para>
This option has the same effect as the option of the same name
- in <xref linkend="app-pgreceivexlog">. See the description there.
+ in <xref linkend="app-pgreceivewal">. See the description there.
</para>
</listitem>
</varlistentry>
<title>See Also</title>
<simplelist type="inline">
- <member><xref linkend="app-pgreceivexlog"></member>
+ <member><xref linkend="app-pgreceivewal"></member>
</simplelist>
</refsect1>
</refentry>
<!--
-doc/src/sgml/ref/pg_resetxlog.sgml
+doc/src/sgml/ref/pg_resetwal.sgml
PostgreSQL documentation
-->
-<refentry id="APP-PGRESETXLOG">
- <indexterm zone="app-pgresetxlog">
- <primary>pg_resetxlog</primary>
+<refentry id="APP-PGRESETWAL">
+ <indexterm zone="app-pgresetwal">
+ <primary>pg_resetwal</primary>
</indexterm>
<refmeta>
- <refentrytitle><application>pg_resetxlog</application></refentrytitle>
+ <refentrytitle><application>pg_resetwal</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>pg_resetxlog</refname>
+ <refname>pg_resetwal</refname>
<refpurpose>reset the write-ahead log and other control information of a <productname>PostgreSQL</productname> database cluster</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
- <command>pg_resetxlog</command>
+ <command>pg_resetwal</command>
<arg choice="opt"><option>-f</option></arg>
<arg choice="opt"><option>-n</option></arg>
<arg rep="repeat"><replaceable>option</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
- <refsect1 id="R1-APP-PGRESETXLOG-1">
+ <refsect1 id="R1-APP-PGRESETWAL-1">
<title>Description</title>
<para>
- <command>pg_resetxlog</command> clears the write-ahead log (WAL) and
+ <command>pg_resetwal</command> clears the write-ahead log (WAL) and
optionally resets some other control information stored in the
<filename>pg_control</> file. This function is sometimes needed
if these files have become corrupted. It should be used only as a
This utility can only be run by the user who installed the server, because
it requires read/write access to the data directory.
For safety reasons, you must specify the data directory on the command line.
- <command>pg_resetxlog</command> does not use the environment variable
+ <command>pg_resetwal</command> does not use the environment variable
<envar>PGDATA</>.
</para>
<para>
- If <command>pg_resetxlog</command> complains that it cannot determine
+ If <command>pg_resetwal</command> complains that it cannot determine
valid data for <filename>pg_control</>, you can force it to proceed anyway
by specifying the <option>-f</> (force) option. In this case plausible
values will be substituted for the missing data. Most of the fields can be
<term><option>-f</option></term>
<listitem>
<para>
- Force <command>pg_resetxlog</command> to proceed even if it cannot determine
+ Force <command>pg_resetwal</command> to proceed even if it cannot determine
valid data for <filename>pg_control</>, as explained above.
</para>
</listitem>
<listitem>
<para>
The <option>-n</> (no operation) option instructs
- <command>pg_resetxlog</command> to print the values reconstructed from
+ <command>pg_resetwal</command> to print the values reconstructed from
<filename>pg_control</> and values about to be changed, and then exit
without modifying anything. This is mainly a debugging tool, but can be
- useful as a sanity check before allowing <command>pg_resetxlog</command>
+ useful as a sanity check before allowing <command>pg_resetwal</command>
to proceed for real.
</para>
</listitem>
<para>
The following options are only needed when
- <command>pg_resetxlog</command> is unable to determine appropriate values
+ <command>pg_resetwal</command> is unable to determine appropriate values
by reading <filename>pg_control</>. Safe values can be determined as
described below. For values that take numeric arguments, hexadecimal
values can be specified by using the prefix <literal>0x</literal>.
<para>
The transaction ID epoch is not actually stored anywhere in the database
- except in the field that is set by <command>pg_resetxlog</command>,
+ except in the field that is set by <command>pg_resetwal</command>,
so any value will work so far as the database itself is concerned.
You might need to adjust this value to ensure that replication
systems such as <application>Slony-I</> and
</varlistentry>
<varlistentry>
- <term><option>-l</option> <replaceable class="parameter">xlogfile</replaceable></term>
+ <term><option>-l</option> <replaceable class="parameter">walfile</replaceable></term>
<listitem>
<para>
Manually set the WAL starting address.
<note>
<para>
- <command>pg_resetxlog</command> itself looks at the files in
+ <command>pg_resetwal</command> itself looks at the files in
<filename>pg_wal</> and chooses a default <option>-l</> setting
beyond the last existing file name. Therefore, manual adjustment of
<option>-l</> should only be needed if you are aware of WAL segment
<para>
This command must not be used when the server is
- running. <command>pg_resetxlog</command> will refuse to start up if
+ running. <command>pg_resetwal</command> will refuse to start up if
it finds a server lock file in the data directory. If the
server crashed then a lock file might have been left
behind; in that case you can remove the lock file to allow
- <command>pg_resetxlog</command> to run. But before you do
+ <command>pg_resetwal</command> to run. But before you do
so, make doubly certain that there is no server process still alive.
</para>
</refsect1>
<!--
-doc/src/sgml/ref/pg_xlogdump.sgml
+doc/src/sgml/ref/pg_waldump.sgml
PostgreSQL documentation
-->
-<refentry id="pgxlogdump">
- <indexterm zone="pgxlogdump">
- <primary>pg_xlogdump</primary>
+<refentry id="pgwaldump">
+ <indexterm zone="pgwaldump">
+ <primary>pg_waldump</primary>
</indexterm>
<refmeta>
- <refentrytitle><application>pg_xlogdump</application></refentrytitle>
+ <refentrytitle><application>pg_waldump</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
- <refname>pg_xlogdump</refname>
+ <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_xlogdump</command>
+ <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>
</cmdsynopsis>
</refsynopsisdiv>
- <refsect1 id="R1-APP-PGXLOGDUMP-1">
+ <refsect1 id="R1-APP-PGWALDUMP-1">
<title>Description</title>
<para>
- <command>pg_xlogdump</command> displays the write-ahead log (WAL) and is mainly
+ <command>pg_waldump</command> displays the write-ahead log (WAL) and is mainly
useful for debugging or educational purposes.
</para>
<term><option>--version</></term>
<listitem>
<para>
- Print the <application>pg_xlogdump</application> version and exit.
+ Print the <application>pg_waldump</application> version and exit.
</para>
</listitem>
</varlistentry>
<term><option>--help</></term>
<listitem>
<para>
- Show help about <application>pg_xlogdump</application> command line
+ Show help about <application>pg_waldump</application> command line
arguments, and exit.
</para>
</listitem>
</para>
<para>
- <application>pg_xlogdump</> cannot read WAL files with suffix
+ <application>pg_waldump</> cannot read WAL files with suffix
<literal>.partial</>. If those files need to be read, <literal>.partial</>
suffix needs to be removed from the file name.
</para>
&pgDump;
&pgDumpall;
&pgIsready;
- &pgReceivexlog;
+ &pgReceivewal;
&pgRecvlogical;
&pgRestore;
&psqlRef;
&pgarchivecleanup;
&pgControldata;
&pgCtl;
- &pgResetxlog;
+ &pgResetwal;
&pgRewind;
&pgtestfsync;
&pgtesttiming;
&pgupgrade;
- &pgxlogdump;
+ &pgwaldump;
&postgres;
&postmaster;
<listitem>
<para>
Add a <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
tool to archive WAL file changes as they are written
</para>
</listitem>
<listitem>
<para>
Add a <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
tool to archive WAL file changes as they are written, rather
than waiting for completed WAL files (Magnus Hagander)
</para>
<listitem>
<para>
Allow tools like <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
to run on computers with different architectures (Heikki
Linnakangas)
</para>
<listitem>
<para>
Allow <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
and <link
linkend="app-pgbasebackup"><application>pg_basebackup</></link>
<option>--xlog-method</> to handle streaming timeline switches
linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
<link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
to allow specifying a connection string (Amit Kapila)
</para>
</listitem>
<listitem>
<para>
- Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
+ Add <link linkend="pgwaldump"><application>pg_xlogdump</></link>
contrib program (Andres Freund)
</para>
</listitem>
<listitem>
<para>
- Make <xref linkend="APP-PGRESETXLOG"> with option <option>-n</>
- output current and potentially changed values (Rajeev Rastogi)
+ Make <link linkend="app-pgresetwal"><application>pg_resetxlog</></>
+ with option <option>-n</> output current and potentially changed
+ values (Rajeev Rastogi)
</para>
</listitem>
<listitem>
<para>
- Allow <xref linkend="pgxlogdump"> to report a live log stream
- with <option>--follow</> (Heikki Linnakangas)
+ Allow <link linkend="pgwaldump"><application>pg_xlogdump</></>
+ to report a live log stream with <option>--follow</>
+ (Heikki Linnakangas)
</para>
</listitem>
linkend="pgarchivecleanup"><application>pg_archivecleanup</></>,
<link linkend="pgtestfsync"><application>pg_test_fsync</></>,
<link linkend="pgtesttiming"><application>pg_test_timing</></>,
- and <link linkend="pgxlogdump"><application>pg_xlogdump</></>
+ and <link linkend="pgwaldump"><application>pg_xlogdump</></>
from <filename>contrib</> to <filename>src/bin</> (Peter Eisentraut)
</para>
-->
<para>
Allow <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></>
to manage physical replication slots (Michael Paquier)
</para>
-->
<para>
Allow <link
- linkend="app-pgreceivexlog"><application>pg_receivexlog</></>
+ linkend="app-pgreceivewal"><application>pg_receivexlog</></>
to synchronously flush <acronym>WAL</> to storage using new
<option>--synchronous</> option (Furuya Osamu, Fujii Masao)
</para>
2014-09-19 [bdd5726] Andres..: Add the capability to display summary statistic..
-->
<para>
- Add <link linkend="pgxlogdump"><application>pg_xlogdump</></> option
+ Add <link linkend="pgwaldump"><application>pg_xlogdump</></> option
<option>--stats</> to display summary statistics (Abhijit Menon-Sen)
</para>
</listitem>
* understand format.
*
* This routines are in xactdesc.c because they're accessed in backend (when
- * replaying WAL) and frontend (pg_xlogdump) code. This file is the only xact
+ * replaying WAL) and frontend (pg_waldump) code. This file is the only xact
* specific one shared between both. They're complicated enough that
* duplication would be bothersome.
*/
*
* We primarily check whether oldestXidDB is valid. The cases we have in
* mind are that that database was dropped, or the field was reset to zero
- * by pg_resetxlog. In either case we should force recalculation of the
+ * by pg_resetwal. In either case we should force recalculation of the
* wrap limit. Also do it if oldestXid is old enough to be forcing
* autovacuums or other actions; this ensures we update our state as soon
* as possible once extra overhead is being incurred.
* always be one descriptor left open until the process ends, but never
* more than one.
*
- * XXX This is very similar to pg_xlogdump's XLogDumpXLogRead and to XLogRead
+ * XXX This is very similar to pg_waldump's XLogDumpXLogRead and to XLogRead
* in walsender.c but for small differences (such as lack of elog() in
* frontend). Probably these should be merged at some point.
*/
/*
* We identify snapshots by the LSN they are valid for. We don't need to
* include timelines in the name as each LSN maps to exactly one timeline
- * unless the user used pg_resetxlog or similar. If a user did so, there's
+ * unless the user used pg_resetwal or similar. If a user did so, there's
* no hope continuing to decode anyway.
*/
sprintf(path, "pg_logical/snapshots/%X-%X.snap",
/*
* To figure out whether all WAL has successfully been replicated, check
- * flush location if valid, write otherwise. Tools like pg_receivexlog
+ * flush location if valid, write otherwise. Tools like pg_receivewal
* will usually (unless in synchronous mode) return an invalid flush
* location.
*/
NULL
},
&autovacuum_freeze_max_age,
- /* see pg_resetxlog if you change the upper-limit value */
+ /* see pg_resetwal if you change the upper-limit value */
200000000, 100000, 2000000000,
NULL, NULL, NULL
},
pg_controldata \
pg_ctl \
pg_dump \
- pg_resetxlog \
+ pg_resetwal \
pg_rewind \
pg_test_fsync \
pg_test_timing \
pg_upgrade \
- pg_xlogdump \
+ pg_waldump \
pgbench \
psql \
scripts
/pg_basebackup
-/pg_receivexlog
+/pg_receivewal
/pg_recvlogical
/tmp_check/
#
#-------------------------------------------------------------------------
-PGFILEDESC = "pg_basebackup/pg_receivexlog/pg_recvlogical - streaming WAL and backup receivers"
+PGFILEDESC = "pg_basebackup/pg_receivewal/pg_recvlogical - streaming WAL and backup receivers"
PGAPPICON=win32
EXTRA_INSTALL=contrib/test_decoding
OBJS=receivelog.o streamutil.o walmethods.o $(WIN32RES)
-all: pg_basebackup pg_receivexlog pg_recvlogical
+all: pg_basebackup pg_receivewal pg_recvlogical
pg_basebackup: pg_basebackup.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils
$(CC) $(CFLAGS) pg_basebackup.o $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
-pg_receivexlog: pg_receivexlog.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils
- $(CC) $(CFLAGS) pg_receivexlog.o $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
+pg_receivewal: pg_receivewal.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils
+ $(CC) $(CFLAGS) pg_receivewal.o $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
pg_recvlogical: pg_recvlogical.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils
$(CC) $(CFLAGS) pg_recvlogical.o $(OBJS) $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
$(INSTALL_PROGRAM) pg_basebackup$(X) '$(DESTDIR)$(bindir)/pg_basebackup$(X)'
- $(INSTALL_PROGRAM) pg_receivexlog$(X) '$(DESTDIR)$(bindir)/pg_receivexlog$(X)'
+ $(INSTALL_PROGRAM) pg_receivewal$(X) '$(DESTDIR)$(bindir)/pg_receivewal$(X)'
$(INSTALL_PROGRAM) pg_recvlogical$(X) '$(DESTDIR)$(bindir)/pg_recvlogical$(X)'
installdirs:
uninstall:
rm -f '$(DESTDIR)$(bindir)/pg_basebackup$(X)'
- rm -f '$(DESTDIR)$(bindir)/pg_receivexlog$(X)'
+ rm -f '$(DESTDIR)$(bindir)/pg_receivewal$(X)'
rm -f '$(DESTDIR)$(bindir)/pg_recvlogical$(X)'
clean distclean maintainer-clean:
- rm -f pg_basebackup$(X) pg_receivexlog$(X) pg_recvlogical$(X) \
- pg_basebackup.o pg_receivexlog.o pg_recvlogical.o \
+ rm -f pg_basebackup$(X) pg_receivewal$(X) pg_recvlogical$(X) \
+ pg_basebackup.o pg_receivewal.o pg_recvlogical.o \
$(OBJS)
rm -rf tmp_check
# src/bin/pg_basebackup/nls.mk
CATALOG_NAME = pg_basebackup
AVAIL_LANGUAGES = de es fr it ko pl pt_BR ru zh_CN
-GETTEXT_FILES = pg_basebackup.c pg_receivexlog.c pg_recvlogical.c receivelog.c streamutil.c ../../common/fe_memutils.c ../../common/file_utils.c
+GETTEXT_FILES = pg_basebackup.c pg_receivewal.c pg_recvlogical.c receivelog.c streamutil.c ../../common/fe_memutils.c ../../common/file_utils.c
GETTEXT_TRIGGERS = simple_prompt
/*-------------------------------------------------------------------------
*
- * pg_receivexlog.c - receive streaming transaction log data and write it
+ * pg_receivewal.c - receive streaming transaction log data and write it
* to a local file.
*
* Author: Magnus Hagander <magnus@hagander.net>
* Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * src/bin/pg_basebackup/pg_receivexlog.c
+ * src/bin/pg_basebackup/pg_receivewal.c
*-------------------------------------------------------------------------
*/
else if (strcmp(argv[1], "-V") == 0 ||
strcmp(argv[1], "--version") == 0)
{
- puts("pg_receivexlog (PostgreSQL) " PG_VERSION);
+ puts("pg_receivewal (PostgreSQL) " PG_VERSION);
exit(0);
}
}
--- /dev/null
+use strict;
+use warnings;
+use TestLib;
+use Test::More tests => 8;
+
+program_help_ok('pg_receivewal');
+program_version_ok('pg_receivewal');
+program_options_handling_ok('pg_receivewal');
+++ /dev/null
-use strict;
-use warnings;
-use TestLib;
-use Test::More tests => 8;
-
-program_help_ok('pg_receivexlog');
-program_version_ok('pg_receivexlog');
-program_options_handling_ok('pg_receivexlog');
* - WalDirectoryMethod - write WAL to regular files in a standard pg_xlog
* - TarDirectoryMethod - write WAL to a tarfile corresponding to pg_xlog
* (only implements the methods required for pg_basebackup,
- * not all those required for pg_receivexlog)
+ * not all those required for pg_receivewal)
*/
WalWriteMethod *CreateWalDirectoryMethod(const char *basedir,
int compression, bool sync);
--- /dev/null
+/pg_resetwal
#-------------------------------------------------------------------------
#
-# Makefile for src/bin/pg_resetxlog
+# Makefile for src/bin/pg_resetwal
#
# Copyright (c) 1998-2017, PostgreSQL Global Development Group
#
-# src/bin/pg_resetxlog/Makefile
+# src/bin/pg_resetwal/Makefile
#
#-------------------------------------------------------------------------
-PGFILEDESC = "pg_resetxlog - reset PostgreSQL WAL log"
+PGFILEDESC = "pg_resetwal - reset PostgreSQL WAL log"
PGAPPICON=win32
-subdir = src/bin/pg_resetxlog
+subdir = src/bin/pg_resetwal
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-OBJS= pg_resetxlog.o $(WIN32RES)
+OBJS= pg_resetwal.o $(WIN32RES)
-all: pg_resetxlog
+all: pg_resetwal
-pg_resetxlog: $(OBJS) | submake-libpgport
+pg_resetwal: $(OBJS) | submake-libpgport
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
- $(INSTALL_PROGRAM) pg_resetxlog$(X) '$(DESTDIR)$(bindir)/pg_resetxlog$(X)'
+ $(INSTALL_PROGRAM) pg_resetwal$(X) '$(DESTDIR)$(bindir)/pg_resetwal$(X)'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(bindir)'
uninstall:
- rm -f '$(DESTDIR)$(bindir)/pg_resetxlog$(X)'
+ rm -f '$(DESTDIR)$(bindir)/pg_resetwal$(X)'
clean distclean maintainer-clean:
- rm -f pg_resetxlog$(X) $(OBJS)
+ rm -f pg_resetwal$(X) $(OBJS)
--- /dev/null
+# src/bin/pg_resetwal/nls.mk
+CATALOG_NAME = pg_resetwal
+AVAIL_LANGUAGES = cs de es fr it ja ko pl pt_BR ru sv zh_CN
+GETTEXT_FILES = pg_resetwal.c ../../common/restricted_token.c
/*-------------------------------------------------------------------------
*
- * pg_resetxlog.c
+ * pg_resetwal.c
* A utility to "zero out" the xlog when it's corrupt beyond recovery.
* Can also rebuild pg_control if needed.
*
* Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * src/bin/pg_resetxlog/pg_resetxlog.c
+ * src/bin/pg_resetwal/pg_resetwal.c
*
*-------------------------------------------------------------------------
*/
char *DataDir = NULL;
int fd;
- set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_resetxlog"));
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_resetwal"));
progname = get_progname(argv[0]);
}
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
{
- puts("pg_resetxlog (PostgreSQL) " PG_VERSION);
+ puts("pg_resetwal (PostgreSQL) " PG_VERSION);
exit(0);
}
}
}
/*
- * Don't allow pg_resetxlog to be run as root, to avoid overwriting the
+ * Don't allow pg_resetwal to be run as root, to avoid overwriting the
* ownership of files in the data directory. We need only check for root
* -- any other user won't have sufficient permissions to modify files in
* the data directory.
/*
* Note: We don't use XLogFromFileName here, because we want to
* use the segment size from the control file, not the size the
- * pg_resetxlog binary was compiled with
+ * pg_resetwal binary was compiled with
*/
sscanf(xlde->d_name, "%08X%08X%08X", &tli, &log, &seg);
segno = ((uint64) log) * segs_per_xlogid + seg;
+++ /dev/null
-/pg_resetxlog
+++ /dev/null
-# src/bin/pg_resetxlog/nls.mk
-CATALOG_NAME = pg_resetxlog
-AVAIL_LANGUAGES = cs de es fr it ja ko pl pt_BR ru sv zh_CN
-GETTEXT_FILES = pg_resetxlog.c ../../common/restricted_token.c
*
* gets pg_control information in "ctrl". Assumes that bindir and
* datadir are valid absolute paths to postgresql bin and pgdata
- * directories respectively *and* pg_resetxlog is version compatible
+ * directories respectively *and* pg_resetwal is version compatible
* with datadir. The main purpose of this function is to get pg_control
* data in a version independent manner.
*
- * The approach taken here is to invoke pg_resetxlog with -n option
+ * The approach taken here is to invoke pg_resetwal with -n option
* and then pipe its output. With little string parsing we get the
- * pg_control data. pg_resetxlog cannot be run while the server is running
+ * pg_control data. pg_resetwal cannot be run while the server is running
* so we use pg_controldata; pg_controldata doesn't provide all the fields
* we need to actually perform the upgrade, but it provides enough for
- * check mode. We do not implement pg_resetxlog -n because it is hard to
+ * check mode. We do not implement pg_resetwal -n because it is hard to
* return valid xid data for a running server.
*/
void
/*
- * Because we test the pg_resetxlog output as strings, it has to be in
+ * Because we test the pg_resetwal output as strings, it has to be in
* English. Copied from pg_regress.c.
*/
if (getenv("LC_COLLATE"))
snprintf(cmd, sizeof(cmd), "\"%s/%s \"%s\"",
cluster->bindir,
- live_check ? "pg_controldata\"" : "pg_resetxlog\" -n",
+ live_check ? "pg_controldata\"" : "pg_resetwal\" -n",
cluster->pgdata);
fflush(stdout);
fflush(stderr);
p = strchr(p, ':');
if (p == NULL || strlen(p) <= 1)
- pg_fatal("%d: pg_resetxlog problem\n", __LINE__);
+ pg_fatal("%d: pg_resetwal problem\n", __LINE__);
p++; /* remove ':' char */
cluster->controldata.ctrl_ver = str2uint(p);
pg_free(lc_messages);
/*
- * Before 9.3, pg_resetxlog reported the xlogid and segno of the first log
+ * Before 9.3, pg_resetwal reported the xlogid and segno of the first log
* file after reset as separate lines. Starting with 9.3, it reports the
* WAL file name. If the old cluster is older than 9.3, we construct the
* WAL file name from the xlogid and segno.
validate_exec(cluster->bindir, "postgres");
validate_exec(cluster->bindir, "pg_ctl");
- validate_exec(cluster->bindir, "pg_resetxlog");
+ validate_exec(cluster->bindir, "pg_resetwal");
if (cluster == &new_cluster)
{
/* these are only needed in the new cluster */
*/
prep_status("Setting next OID for new cluster");
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -o %u \"%s\"",
+ "\"%s/pg_resetwal\" -o %u \"%s\"",
new_cluster.bindir, old_cluster.controldata.chkpnt_nxtoid,
new_cluster.pgdata);
check_ok();
/* set the next transaction id and epoch of the new cluster */
prep_status("Setting next transaction ID and epoch for new cluster");
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -f -x %u \"%s\"",
+ "\"%s/pg_resetwal\" -f -x %u \"%s\"",
new_cluster.bindir, old_cluster.controldata.chkpnt_nxtxid,
new_cluster.pgdata);
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -f -e %u \"%s\"",
+ "\"%s/pg_resetwal\" -f -e %u \"%s\"",
new_cluster.bindir, old_cluster.controldata.chkpnt_nxtepoch,
new_cluster.pgdata);
/* must reset commit timestamp limits also */
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -f -c %u,%u \"%s\"",
+ "\"%s/pg_resetwal\" -f -c %u,%u \"%s\"",
new_cluster.bindir,
old_cluster.controldata.chkpnt_nxtxid,
old_cluster.controldata.chkpnt_nxtxid,
* counters here and the oldest multi present on system.
*/
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -O %u -m %u,%u \"%s\"",
+ "\"%s/pg_resetwal\" -O %u -m %u,%u \"%s\"",
new_cluster.bindir,
old_cluster.controldata.chkpnt_nxtmxoff,
old_cluster.controldata.chkpnt_nxtmulti,
* next=MaxMultiXactId, but multixact.c can cope with that just fine.
*/
exec_prog(UTILITY_LOG_FILE, NULL, true,
- "\"%s/pg_resetxlog\" -m %u,%u \"%s\"",
+ "\"%s/pg_resetwal\" -m %u,%u \"%s\"",
new_cluster.bindir,
old_cluster.controldata.chkpnt_nxtmulti + 1,
old_cluster.controldata.chkpnt_nxtmulti,
prep_status("Resetting WAL archives");
exec_prog(UTILITY_LOG_FILE, NULL, true,
/* use timeline 1 to match controldata and no WAL history file */
- "\"%s/pg_resetxlog\" -l 00000001%s \"%s\"", new_cluster.bindir,
+ "\"%s/pg_resetwal\" -l 00000001%s \"%s\"", new_cluster.bindir,
old_cluster.controldata.nextxlogfile + 8,
new_cluster.pgdata);
check_ok();
-/pg_xlogdump
+/pg_waldump
# Source files copied from src/backend/access/rmgrdesc/
/*desc.c
/xlogreader.c
-# src/bin/pg_xlogdump/Makefile
+# src/bin/pg_waldump/Makefile
-PGFILEDESC = "pg_xlogdump - decode and display WAL"
+PGFILEDESC = "pg_waldump - decode and display WAL"
PGAPPICON=win32
-subdir = src/bin/pg_xlogdump
+subdir = src/bin/pg_waldump
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-OBJS = pg_xlogdump.o compat.o xlogreader.o rmgrdesc.o \
+OBJS = pg_waldump.o compat.o xlogreader.o rmgrdesc.o \
$(RMGRDESCOBJS) $(WIN32RES)
override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
RMGRDESCOBJS = $(patsubst %.c,%.o,$(RMGRDESCSOURCES))
-all: pg_xlogdump
+all: pg_waldump
-pg_xlogdump: $(OBJS) | submake-libpgport
+pg_waldump: $(OBJS) | submake-libpgport
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
xlogreader.c: % : $(top_srcdir)/src/backend/access/transam/%
rm -f $@ && $(LN_S) $< .
install: all installdirs
- $(INSTALL_PROGRAM) pg_xlogdump$(X) '$(DESTDIR)$(bindir)/pg_xlogdump$(X)'
+ $(INSTALL_PROGRAM) pg_waldump$(X) '$(DESTDIR)$(bindir)/pg_waldump$(X)'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(bindir)'
uninstall:
- rm -f '$(DESTDIR)$(bindir)/pg_xlogdump$(X)'
+ rm -f '$(DESTDIR)$(bindir)/pg_waldump$(X)'
clean distclean maintainer-clean:
- rm -f pg_xlogdump$(X) $(OBJS) $(RMGRDESCSOURCES) xlogreader.c
+ rm -f pg_waldump$(X) $(OBJS) $(RMGRDESCSOURCES) xlogreader.c
* Portions Copyright (c) 2013-2017, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * src/bin/pg_xlogdump/compat.c
+ * src/bin/pg_waldump/compat.c
*
* This file contains client-side implementations for various backend
* functions that the rm_desc functions in *desc.c files rely on.
--- /dev/null
+# src/bin/pg_waldump/nls.mk
+CATALOG_NAME = pg_waldump
+AVAIL_LANGUAGES =
+GETTEXT_FILES = pg_waldump.c
+GETTEXT_TRIGGERS = fatal_error
+GETTEXT_FLAGS = fatal_error:1:c-format
/*-------------------------------------------------------------------------
*
- * pg_xlogdump.c - decode and display WAL
+ * pg_waldump.c - decode and display WAL
*
* Copyright (c) 2013-2017, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * src/bin/pg_xlogdump/pg_xlogdump.c
+ * src/bin/pg_waldump/pg_waldump.c
*-------------------------------------------------------------------------
*/
int option;
int optindex = 0;
- set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_xlogdump"));
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_waldump"));
progname = get_progname(argv[0]);
memset(&private, 0, sizeof(XLogDumpPrivate));
}
break;
case 'V':
- puts("pg_xlogdump (PostgreSQL) " PG_VERSION);
+ puts("pg_waldump (PostgreSQL) " PG_VERSION);
exit(EXIT_SUCCESS);
break;
case 'x':
/*
* rmgrdesc.c
*
- * pg_xlogdump resource managers definition
+ * pg_waldump resource managers definition
*
- * src/bin/pg_xlogdump/rmgrdesc.c
+ * src/bin/pg_waldump/rmgrdesc.c
*/
#define FRONTEND 1
#include "postgres.h"
/*
* rmgrdesc.h
*
- * pg_xlogdump resource managers declaration
+ * pg_waldump resource managers declaration
*
- * src/bin/pg_xlogdump/rmgrdesc.h
+ * src/bin/pg_waldump/rmgrdesc.h
*/
#ifndef RMGRDESC_H
#define RMGRDESC_H
+++ /dev/null
-# src/bin/pg_xlogdump/nls.mk
-CATALOG_NAME = pg_xlogdump
-AVAIL_LANGUAGES =
-GETTEXT_FILES = pg_xlogdump.c
-GETTEXT_TRIGGERS = fatal_error
-GETTEXT_FLAGS = fatal_error:1:c-format
* So the XLogRecord typedef and associated stuff appear in xlogrecord.h.
*
* Note: This file must be includable in both frontend and backend contexts,
- * to allow stand-alone tools like pg_receivexlog to deal with WAL files.
+ * to allow stand-alone tools like pg_receivewal to deal with WAL files.
*
* Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN)
/*
- * XLOG segment with .partial suffix. Used by pg_receivexlog and at end of
+ * XLOG segment with .partial suffix. Used by pg_receivewal and at end of
* archive recovery, when we want to archive a WAL segment but it might not
* be complete yet.
*/
/*
* Although this header file is nominally backend-only, certain frontend
- * programs like pg_xlogdump include it. For compilers that emit static
+ * programs like pg_waldump include it. For compilers that emit static
* inline functions even when they're unused, that leads to unsatisfied
* external references; hence hide these with #ifndef FRONTEND.
*/
'dropdb', 'droplang', 'dropuser', 'ecpg',
'libecpg', 'libecpg_compat', 'libpgtypes', 'libpq',
'pg_basebackup', 'pg_config', 'pg_dump', 'pg_dumpall',
- 'pg_isready', 'pg_receivexlog', 'pg_recvlogical', 'pg_restore',
+ 'pg_isready', 'pg_receivewal', 'pg_recvlogical', 'pg_restore',
'psql', 'reindexdb', 'vacuumdb', @client_contribs);
sub lcopy
my @frontend_uselibpgport = (
'pg_archivecleanup', 'pg_test_fsync',
'pg_test_timing', 'pg_upgrade',
- 'pg_xlogdump', 'pgbench');
+ 'pg_waldump', 'pgbench');
my @frontend_uselibpgcommon = (
'pg_archivecleanup', 'pg_test_fsync',
'pg_test_timing', 'pg_upgrade',
- 'pg_xlogdump', 'pgbench');
+ 'pg_waldump', 'pgbench');
my $frontend_extralibs = {
'initdb' => ['ws2_32.lib'],
'pg_restore' => ['ws2_32.lib'],
[ 'src/bin/pgbench/exprscan.l', 'src/bin/pgbench/exprparse.y' ] };
my @frontend_excludes = (
'pgevent', 'pg_basebackup', 'pg_rewind', 'pg_dump',
- 'pg_xlogdump', 'scripts');
+ 'pg_waldump', 'scripts');
sub mkvcbuild
{
$pgbasebackup->AddFile('src/bin/pg_basebackup/pg_basebackup.c');
$pgbasebackup->AddLibrary('ws2_32.lib');
- my $pgreceivexlog = AddSimpleFrontend('pg_basebackup', 1);
- $pgreceivexlog->{name} = 'pg_receivexlog';
- $pgreceivexlog->AddFile('src/bin/pg_basebackup/pg_receivexlog.c');
- $pgreceivexlog->AddLibrary('ws2_32.lib');
+ my $pgreceivewal = AddSimpleFrontend('pg_basebackup', 1);
+ $pgreceivewal->{name} = 'pg_receivewal';
+ $pgreceivewal->AddFile('src/bin/pg_basebackup/pg_receivewal.c');
+ $pgreceivewal->AddLibrary('ws2_32.lib');
my $pgrecvlogical = AddSimpleFrontend('pg_basebackup', 1);
$pgrecvlogical->{name} = 'pg_recvlogical';
$pgregress->AddDirResourceFile('src/test/regress');
$pgregress->AddReference($libpgcommon, $libpgport);
- # fix up pg_xlogdump once it's been set up
+ # fix up pg_waldump once it's been set up
# files symlinked on Unix are copied on windows
- my $pg_xlogdump = AddSimpleFrontend('pg_xlogdump');
- $pg_xlogdump->AddDefine('FRONTEND');
+ my $pg_waldump = AddSimpleFrontend('pg_waldump');
+ $pg_waldump->AddDefine('FRONTEND');
foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c'))
{
- $pg_xlogdump->AddFile($xf);
+ $pg_waldump->AddFile($xf);
}
- $pg_xlogdump->AddFile('src/backend/access/transam/xlogreader.c');
+ $pg_waldump->AddFile('src/backend/access/transam/xlogreader.c');
$solution->Save();
return $solution->{vcver};