Description
-
pg_receivexlog is used to stream transaction log
+
pg_receivexlog is used to stream t
he transaction log
from a running
PostgreSQL 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
- Unlike the
standby's WAL receiver,
pg_receivexlog>
+ Unlike the
WAL receiver of a PostgreSQL standby server,
pg_receivexlog>
by default flushes WAL data only when a WAL file is closed.
- --synchronous> option must be specified to flush WAL data
- in real time and ensure it's safely flushed to disk.
+ The option must be specified to flush WAL data
+ in real time.
The transaction log is streamed over a regular
-
PostgreSQL connection
, and uses the replication
+
PostgreSQL connection and uses the replication
protocol. The connection must be made with a superuser or a user
having REPLICATION permissions (see
), and pg_hba.conf
- must explicitly permit the replication connection. The server must also be
+ must permit the replication connection. The server must also be
configured with set high enough to
leave at least one session available for the stream.
When this option is used,
pg_receivexlog> 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. --synchronous option must
- be specified when making
pg_receivexlog> run as
- synchronous standby by using replication slot. Otherwise WAL data
- cannot be flushed frequently enough for this to work correctly.
+ is not otherwise needed.
+
+
+ When the replication client
+ of
pg_receivexlog 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
+ primary to wait for a long time and effectively not work
+ satisfactorily. The option --synchronous (see
+ below) must be specified in addition to make this work correctly.
send a status packet back to the server immediately after flushing,
regardless of --status-interval>.
+
+ This option should be specified if the replication client
+ of
pg_receivexlog is configured on the
+ server as a synchronous standby, to ensure that timely feedback is
+ sent to the server.
+