Current File : //usr/share/doc/postgresql-9.2.24/html/app-pgreceivexlog.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>pg_receivexlog</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 9.2.24 Documentation"
HREF="index.html"><LINK
REL="UP"
TITLE="PostgreSQL Client Applications"
HREF="reference-client.html"><LINK
REL="PREVIOUS"
TITLE="pg_dumpall"
HREF="app-pg-dumpall.html"><LINK
REL="NEXT"
TITLE="pg_restore"
HREF="app-pgrestore.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2017-11-06T22:43:11"></HEAD
><BODY
CLASS="REFENTRY"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
><A
HREF="index.html"
>PostgreSQL 9.2.24 Documentation</A
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
TITLE="pg_dumpall"
HREF="app-pg-dumpall.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="reference-client.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="20%"
ALIGN="right"
VALIGN="top"
><A
TITLE="pg_restore"
HREF="app-pgrestore.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="APP-PGRECEIVEXLOG"
></A
>pg_receivexlog</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN83196"
></A
><H2
>Name</H2
>pg_receivexlog -- streams transaction logs from a <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> cluster</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN83202"
></A
><H2
>Synopsis</H2
><P
><TT
CLASS="COMMAND"
>pg_receivexlog</TT
> [<TT
CLASS="REPLACEABLE"
><I
>option</I
></TT
>...]</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83207"
></A
><H2
> Description
</H2
><P
> <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> is used to stream transaction log
from a running <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> 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
location for doing a restore using point-in-time recovery (see
<A
HREF="continuous-archiving.html"
>Section 24.3</A
>).
</P
><P
> <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> streams the transaction
log in real time as it's being generated on the server, and does not wait
for segments to complete like <A
HREF="runtime-config-wal.html#GUC-ARCHIVE-COMMAND"
>archive_command</A
> does.
For this reason, it is not necessary to set
<A
HREF="runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT"
>archive_timeout</A
> when using
<SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
>.
</P
><P
> The transaction log is streamed over a regular
<SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> connection, and uses the replication
protocol. The connection must be made with a superuser or a user
having <TT
CLASS="LITERAL"
>REPLICATION</TT
> permissions (see
<A
HREF="role-attributes.html"
>Section 20.2</A
>), and <TT
CLASS="FILENAME"
>pg_hba.conf</TT
>
must explicitly permit the replication connection. The server must also be
configured with <A
HREF="runtime-config-replication.html#GUC-MAX-WAL-SENDERS"
>max_wal_senders</A
> set high enough to
leave at least one session available for the stream.
</P
><P
> If the connection is lost, or if it cannot be initially established,
with a non-fatal error, <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> will
retry the connection indefinitely, and reestablish streaming as soon
as possible. To avoid this behavior, use the <TT
CLASS="LITERAL"
>-n</TT
>
parameter.
</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83227"
></A
><H2
>Options</H2
><P
> The following command-line options control the location and format of the
output.
<P
></P
></P><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="OPTION"
>-D <TT
CLASS="REPLACEABLE"
><I
>directory</I
></TT
></TT
><BR><TT
CLASS="OPTION"
>--directory=<TT
CLASS="REPLACEABLE"
><I
>directory</I
></TT
></TT
></DT
><DD
><P
> Directory to write the output to.
</P
><P
> This parameter is required.
</P
></DD
></DL
></DIV
><P>
</P
><P
> The following command-line options control the running of the program.
<P
></P
></P><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="OPTION"
>-n</TT
><BR><TT
CLASS="OPTION"
>--no-loop</TT
></DT
><DD
><P
> Don't loop on connection errors. Instead, exit right away with
an error.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-v</TT
><BR><TT
CLASS="OPTION"
>--verbose</TT
></DT
><DD
><P
> Enables verbose mode.
</P
></DD
></DL
></DIV
><P>
</P
><P
> The following command-line options control the database connection parameters.
<P
></P
></P><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="OPTION"
>-h <TT
CLASS="REPLACEABLE"
><I
>host</I
></TT
></TT
><BR><TT
CLASS="OPTION"
>--host=<TT
CLASS="REPLACEABLE"
><I
>host</I
></TT
></TT
></DT
><DD
><P
> Specifies the host name of the machine on which the server is
running. If the value begins with a slash, it is used as the
directory for the Unix domain socket. The default is taken
from the <TT
CLASS="ENVAR"
>PGHOST</TT
> environment variable, if set,
else a Unix domain socket connection is attempted.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-p <TT
CLASS="REPLACEABLE"
><I
>port</I
></TT
></TT
><BR><TT
CLASS="OPTION"
>--port=<TT
CLASS="REPLACEABLE"
><I
>port</I
></TT
></TT
></DT
><DD
><P
> Specifies the TCP port or local Unix domain socket file
extension on which the server is listening for connections.
Defaults to the <TT
CLASS="ENVAR"
>PGPORT</TT
> environment variable, if
set, or a compiled-in default.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-s <TT
CLASS="REPLACEABLE"
><I
>interval</I
></TT
></TT
><BR><TT
CLASS="OPTION"
>--status-interval=<TT
CLASS="REPLACEABLE"
><I
>interval</I
></TT
></TT
></DT
><DD
><P
> Specifies the number of seconds between status packets sent back to the
server. This is required if replication timeout is configured on the
server, and allows for easier monitoring. A value of zero disables the
status updates completely. The default value is 10 seconds.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-U <TT
CLASS="REPLACEABLE"
><I
>username</I
></TT
></TT
><BR><TT
CLASS="OPTION"
>--username=<TT
CLASS="REPLACEABLE"
><I
>username</I
></TT
></TT
></DT
><DD
><P
> User name to connect as.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-w</TT
><BR><TT
CLASS="OPTION"
>--no-password</TT
></DT
><DD
><P
> Never issue a password prompt. If the server requires
password authentication and a password is not available by
other means such as a <TT
CLASS="FILENAME"
>.pgpass</TT
> file, the
connection attempt will fail. This option can be useful in
batch jobs and scripts where no user is present to enter a
password.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-W</TT
><BR><TT
CLASS="OPTION"
>--password</TT
></DT
><DD
><P
> Force <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> to prompt for a
password before connecting to a database.
</P
><P
> This option is never essential, since
<SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> will automatically prompt
for a password if the server demands password authentication.
However, <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> will waste a
connection attempt finding out that the server wants a password.
In some cases it is worth typing <TT
CLASS="OPTION"
>-W</TT
> to avoid the extra
connection attempt.
</P
></DD
></DL
></DIV
><P>
</P
><P
> Other options are also available:
<P
></P
></P><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="OPTION"
>-V</TT
><BR><TT
CLASS="OPTION"
>--version</TT
></DT
><DD
><P
> Print the <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> version and exit.
</P
></DD
><DT
><TT
CLASS="OPTION"
>-?</TT
><BR><TT
CLASS="OPTION"
>--help</TT
></DT
><DD
><P
> Show help about <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> command line
arguments, and exit.
</P
></DD
></DL
></DIV
><P>
</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83335"
></A
><H2
>Environment</H2
><P
> This utility, like most other <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> utilities,
uses the environment variables supported by <SPAN
CLASS="APPLICATION"
>libpq</SPAN
>
(see <A
HREF="libpq-envars.html"
>Section 31.14</A
>).
</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83341"
></A
><H2
>Notes</H2
><P
> When using <SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> instead of
<A
HREF="runtime-config-wal.html#GUC-ARCHIVE-COMMAND"
>archive_command</A
>, the server will continue to
recycle transaction log files even if the backups are not properly
archived, since there is no command that fails. This can be worked
around by having an <A
HREF="runtime-config-wal.html#GUC-ARCHIVE-COMMAND"
>archive_command</A
> that fails
when the file has not been properly archived yet, for example:
</P><PRE
CLASS="PROGRAMLISTING"
>archive_command = 'sleep 5 && test -f /mnt/server/archivedir/%f'</PRE
><P>
The initial timeout is necessary because
<SPAN
CLASS="APPLICATION"
>pg_receivexlog</SPAN
> works using asynchronous
replication and can therefore be slightly behind the master.
</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83349"
></A
><H2
>Examples</H2
><P
> To stream the transaction log from the server at
<TT
CLASS="LITERAL"
>mydbserver</TT
> and store it in the local directory
<TT
CLASS="FILENAME"
>/usr/local/pgsql/archive</TT
>:
</P><PRE
CLASS="SCREEN"
><SAMP
CLASS="PROMPT"
>$</SAMP
> <KBD
CLASS="USERINPUT"
>pg_receivexlog -h mydbserver -D /usr/local/pgsql/archive</KBD
></PRE
><P></P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN83357"
></A
><H2
>See Also</H2
><A
HREF="app-pgbasebackup.html"
>pg_basebackup</A
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="app-pg-dumpall.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="app-pgrestore.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><SPAN
CLASS="APPLICATION"
>pg_dumpall</SPAN
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="reference-client.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>pg_restore</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>