| The PostgreSQL 9.0 Reference Manual - Volume 3 - Server Administration Guide
by The PostgreSQL Global Development Group Paperback (6"x9"), 274 pages ISBN 9781906966072 RRP £9.95 ($14.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
11.2.5 Streaming Replication
Streaming replication allows a standby server to stay more up-to-date than is possible with file-based log shipping. The standby connects to the primary, which streams WAL records to the standby as they're generated, without waiting for the WAL file to be filled.
Streaming replication is asynchronous, so there is still a small delay
between committing a transaction in the primary and for the changes to
become visible in the standby. The delay is however much smaller than with
file-based log shipping, typically under one second assuming the standby
is powerful enough to keep up with the load. With streaming replication,
archive_timeout is not required to reduce the data loss
window.
If you use streaming replication without file-based continuous
archiving, you have to set wal_keep_segments in the master
to a value high enough to ensure that old WAL segments are not recycled
too early, while the standby might still need them to catch up. If the
standby falls behind too much, it needs to be reinitialized from a new
base backup. If you set up a WAL archive that's accessible from the
standby, wal_keep_segments is not required as the standby can always
use the archive to catch up.
To use streaming replication, set up a file-based log-shipping standby
server as described in section 11.2 Log-Shipping Standby Servers. The step that
turns a file-based log-shipping standby into streaming replication
standby is setting primary_conninfo setting in the
‘recovery.conf’ file to point to the primary server. Set
listen_addresses and authentication options
(see ‘pg_hba.conf’) on the primary so that the standby server
can connect to the replication pseudo-database on the primary
server (see section 11.2.5.1 Authentication).
On systems that support the keepalive socket option, setting
tcp_keepalives_idle,
tcp_keepalives_interval and
tcp_keepalives_count helps the primary promptly
notice a broken connection.
Set the maximum number of concurrent connections from the standby servers
(see max_wal_senders for details).
When the standby is started and primary_conninfo is set
correctly, the standby will connect to the primary after replaying all
WAL files available in the archive. If the connection is established
successfully, you will see a walreceiver process in the standby, and
a corresponding walsender process in the primary.
| ISBN 9781906966072 | The PostgreSQL 9.0 Reference Manual - Volume 3 - Server Administration Guide | See the print edition |