-
+
High Availability, Load Balancing, and Replication
The host name and port number of the primary, connection user name,
- and password are specified in the recovery.conf> file or
- the corresponding environment variable on the standby.
+ and password are specified in the recovery.conf> file.
+ The password can also be set in the ~/.pgpass> file on the
+ standby (specify replication> in the database>
+ field).
For example, if the primary is running on host IP 192.168.1.50>,
port 5432, the superuser's name for replication is
foo>, and the password is foopass>, the administrator
-
+
A host name of localhost> matches both TCP (host name
localhost>) and Unix domain socket (pghost> empty
or the default socket directory) connections coming from the local
- machine.
+ machine. In a standby server, a database name of replication>
+ matches streaming replication connections made to the master server.
-
+
Recovery Configuration
primary (see
).
A password needs to be provided too, if the primary demands password
- authentication. (The password can be provided either in
- the primary_conninfo string or in a separate
- ~/.pgpass> file on the standby server.)
+ authentication. It can be provided in the
+ primary_conninfo string, or in a separate
+ ~/.pgpass> file on the standby server (use
+ replication> as the database name).
Do not specify a database name in the
primary_conninfo string.
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,v 1.10 2010/04/21 03:32:53 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,v 1.11 2010/06/11 10:13:09 heikki Exp $
*
*-------------------------------------------------------------------------
*/
static bool
libpqrcv_connect(char *conninfo, XLogRecPtr startpoint)
{
- char conninfo_repl[MAXCONNINFO + 18];
+ char conninfo_repl[MAXCONNINFO + 37];
char *primary_sysid;
char standby_sysid[32];
TimeLineID primary_tli;
PGresult *res;
char cmd[64];
- /* Connect using deliberately undocumented parameter: replication */
- snprintf(conninfo_repl, sizeof(conninfo_repl), "%s replication=true", conninfo);
+ /*
+ * Connect using deliberately undocumented parameter: replication.
+ * The database name is ignored by the server in replication mode, but
+ * specify "replication" for .pgpass lookup.
+ */
+ snprintf(conninfo_repl, sizeof(conninfo_repl),
+ "%s dbname=replication replication=true",
+ conninfo);
streamConn = PQconnectdb(conninfo_repl);
if (PQstatus(streamConn) != CONNECTION_OK)