mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Implement streaming xlog for backup tools
Add option for parallel streaming of the transaction log while a base backup is running, to get the logfiles before the server has removed them. Also add a tool called pg_receivexlog, which streams the transaction log into files, creating a log archive without having to wait for segments to complete, thus decreasing the window of data loss without having to waste space using archive_timeout. This works best in combination with archive_command - suggested usage docs etc coming later.
This commit is contained in:
@@ -143,8 +143,8 @@ PostgreSQL documentation
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-x</option></term>
|
||||
<term><option>--xlog</option></term>
|
||||
<term><option>-x <replaceable class="parameter">method</replaceable></option></term>
|
||||
<term><option>--xlog=<replaceable class="parameter">method</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Includes the required transaction log files (WAL files) in the
|
||||
@@ -154,16 +154,43 @@ PostgreSQL documentation
|
||||
to consult the log archive, thus making this a completely standalone
|
||||
backup.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
The transaction log files are collected at the end of the backup.
|
||||
Therefore, it is necessary for the
|
||||
<xref linkend="guc-wal-keep-segments"> parameter to be set high
|
||||
enough that the log is not removed before the end of the backup.
|
||||
If the log has been rotated when it's time to transfer it, the
|
||||
backup will fail and be unusable.
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
The following methods for collecting the transaction logs are
|
||||
supported:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>f</literal></term>
|
||||
<term><literal>fetch</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The transaction log files are collected at the end of the backup.
|
||||
Therefore, it is necessary for the
|
||||
<xref linkend="guc-wal-keep-segments"> parameter to be set high
|
||||
enough that the log is not removed before the end of the backup.
|
||||
If the log has been rotated when it's time to transfer it, the
|
||||
backup will fail and be unusable.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>s</literal></term>
|
||||
<term><literal>stream</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Stream the transaction log while the backup is created. This will
|
||||
open a second connection to the server and start streaming the
|
||||
transaction log in parallel while running the backup. Therefore,
|
||||
it will use up two slots configured by the
|
||||
<xref linkend="guc-max-wal-senders"> parameter. As long as the
|
||||
client can keep up with transaction log received, using this mode
|
||||
requires no extra transaction logs to be saved on the master.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -260,6 +287,20 @@ PostgreSQL documentation
|
||||
The following command-line options control the database connection parameters.
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>-s <replaceable class="parameter">interval</replaceable></option></term>
|
||||
<term><option>--statusint=<replaceable class="parameter">interval</replaceable></option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the number of seconds between status packets sent back to the
|
||||
server. This is required when streaming the transaction log (using
|
||||
<literal>--xlog=stream</literal>) if replication timeout is configured
|
||||
on the server, and allows for easier monitoring. The default value is
|
||||
10 seconds.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-h <replaceable class="parameter">host</replaceable></option></term>
|
||||
<term><option>--host=<replaceable class="parameter">host</replaceable></option></term>
|
||||
|
Reference in New Issue
Block a user