</para>
<para>
- You can use <varname>archive_cleanup_command</> to prune the archive of
- files no longer needed by the standby.
- </para>
-
- <para>
If you're setting up the standby server for high availability purposes,
set up WAL archiving, connections and authentication like the primary
server, because the standby server will work as a primary server after
</para>
<para>
+ If you're using a WAL archive, its size can be minimized using the <xref
+ linkend="archive-cleanup-command"> parameter to remove files that are no
+ longer required by the standby server.
+ The <application>pg_archivecleanup</> utility is designed specifically to
+ be used with <varname>archive_cleanup_command</> in typical single-standby
+ configurations, see <xref linkend="pgarchivecleanup">.
+ Note however, that if you're using the archive for backup purposes, you
+ need to retain files needed to recover from at least the latest base
+ backup, even if they're no longer needed by the standby.
+ </para>
+
+ <para>
A simple example of a <filename>recovery.conf</> is:
<programlisting>
standby_mode = 'on'
primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
restore_command = 'cp /path/to/archive/%f %p'
trigger_file = '/path/to/trigger_file'
+archive_cleanup_command = 'pg_archivecleanup /path/to/archive %r'
</programlisting>
</para>
the primary to allow them to be connected simultaneously.
</para>
- <para>
- If you're using a WAL archive, its size can be minimized using
- the <varname>archive_cleanup_command</> option to remove files that are
- no longer required by the standby server. Note however, that if you're
- using the archive for backup purposes, you need to retain files needed
- to recover from at least the latest base backup, even if they're no
- longer needed by the standby.
- </para>
</sect2>
<sect2 id="streaming-replication">
</indexterm>
<para>
- <application>pg_archivecleanup</> is designed to cleanup an archive when used
- as an <literal>archive_cleanup_command</literal> when running with
- <literal>standby_mode = on</literal>. <application>pg_archivecleanup</> can
- also be used as a standalone program to clean WAL file archives.
+ <application>pg_archivecleanup</> is designed to be used as an
+ <literal>archive_cleanup_command</literal> to clean up WAL file archives when
+ running as a standby server (see <xref linkend="warm-standby">).
+ <application>pg_archivecleanup</> can also be used as a standalone program to
+ clean WAL file archives.
</para>
<para>
server to use <application>pg_archivecleanup</>, put this into its
<filename>recovery.conf</filename> configuration file:
<programlisting>
-archive_cleanup_command = 'pg_archivecleanup <replaceable>archiveDir</> %r'
+archive_cleanup_command = 'pg_archivecleanup <replaceable>archivelocation</> %r'
</programlisting>
- where <replaceable>archiveDir</> is the directory from which WAL segment
- files should be restored.
+ where <replaceable>archivelocation</> is the directory from which WAL segment
+ files should be removed.
</para>
<para>
- When used within <literal>archive_cleanup_command</literal>,
- all WAL files logically preceding the value of the <literal>%r</>
- will be removed <replaceable>archivelocation</>. This minimizes
- the number of files that need to be retained, while preserving
- crash-restart capability. Use of this parameter is appropriate if the
- <replaceable>archivelocation</> is a transient staging area for this
- particular standby server, but <emphasis>not</> when the
- <replaceable>archivelocation</> is intended as a long-term WAL archive area.
+ When used within <xref linkend="archive-cleanup-command">, all WAL files
+ logically preceding the value of the <literal>%r</> argument will be removed
+ from <replaceable>archivelocation</>. This minimizes the number of files
+ that need to be retained, while preserving crash-restart capability. Use of
+ this parameter is appropriate if the <replaceable>archivelocation</> is a
+ transient staging area for this particular standby server, but
+ <emphasis>not</> when the <replaceable>archivelocation</> is intended as a
+ long-term WAL archive area, or when multiple standby servers are recovering
+ from the same archive location.
</para>
<para>
The full syntax of <application>pg_archivecleanup</>'s command line is
</indexterm>
<listitem>
<para>
- This parameter specifies a shell command that will be executed at
- every restartpoint. This parameter is optional. The purpose of the
- <varname>archive_cleanup_command</> is to provide a mechanism for cleaning
- up old archived WAL files that are no longer needed by the standby
- server.
- Any <literal>%r</> is replaced by the name of the file
- containing the last valid restart point. That is the earliest file that
- must be kept to allow a restore to be restartable, so this information
- can be used to truncate the archive to just the minimum required to
- support restart from the current restore. <literal>%r</> would
- typically be used in a warm-standby configuration
- (see <xref linkend="warm-standby">).
- Write <literal>%%</> to embed an actual <literal>%</> character
- in the command.
+ This optional parameter specifies a shell command that will be executed
+ at every restartpoint. The purpose of
+ <varname>archive_cleanup_command</> is to provide a mechanism for
+ cleaning up old archived WAL files that are no longer needed by the
+ standby server.
+ Any <literal>%r</> is replaced by the name of the file containing the
+ last valid restart point.
+ That is the earliest file that must be <emphasis>kept</> to allow a
+ restore to be restartable, and so all files earlier than <literal>%r</>
+ may be safely removed.
+ This information can be used to truncate the archive to just the
+ minimum required to support restart from the current restore.
+ The <application>pg_archivecleanup</> utility provided in
+ <literal>contrib</> (see <xref linkend="pgarchivecleanup">) serves as a
+ convenient target for <varname>archive_cleanup_command</> in typical
+ single-standby configurations, for example:
+<programlisting> archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r' </programlisting>
+ Note however that if multiple standby servers are restoring from the
+ same archive directory, you will need to ensure that you do not delete
+ WAL files until they are no longer needed by any of the servers.
+ <varname>archive_cleanup_command</> would typically be used in a
+ warm-standby configuration (see <xref linkend="warm-standby">).
+ Write <literal>%%</> to embed an actual <literal>%</> character in the
+ command.
</para>
<para>
If the command returns a non-zero exit status then a WARNING log