Skip to content

Commit fd7d387

Browse files
committed
Doc: Clarify interactions of pg_receivewal with remote_apply
Using pg_receivewal with synchronous_commit = remote_apply set in the backend is incompatible if pg_receivewal is a synchronous standby as it never applies WAL, so document this problem and solutions to it. Backpatch to 9.6, where remote_apply has been added. Author: Robert Haas, Jesper Pedersen Reviewed-by: Laurenz Albe, Álvaro Herrera, Michael Paquier Discussion: https://postgr.es/m/[email protected] Backpatch-through: 9.6
1 parent 7d81bdc commit fd7d387

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

doc/src/sgml/ref/pg_receivewal.sgml

+11-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,17 @@ PostgreSQL documentation
5252
Unlike the WAL receiver of a PostgreSQL standby server, <application>pg_receivewal</application>
5353
by default flushes WAL data only when a WAL file is closed.
5454
The option <option>--synchronous</option> must be specified to flush WAL data
55-
in real time.
55+
in real time. Since <application>pg_receivewal</application> does not
56+
apply WAL, you should not allow it to become a synchronous standby when
57+
<xref linkend="guc-synchronous-commit"/> equals
58+
<literal>remote_apply</literal>. If it does, it will appear to be a
59+
standby that never catches up, and will cause transaction commits to
60+
block. To avoid this, you should either configure an appropriate value
61+
for <xref linkend="guc-synchronous-standby-names"/>, or specify
62+
<varname>application_name</varname> for
63+
<application>pg_receivewal</application> that does not match it, or
64+
change the value of <varname>synchronous_commit</varname> to
65+
something other than <literal>remote_apply</literal>.
5666
</para>
5767

5868
<para>

0 commit comments

Comments
 (0)