aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/high-availability.sgml8
-rw-r--r--doc/src/sgml/libpq.sgml5
-rw-r--r--doc/src/sgml/recovery-config.sgml9
-rw-r--r--src/backend/replication/libpqwalreceiver/libpqwalreceiver.c14
4 files changed, 23 insertions, 13 deletions
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index cc11ce69bd2..2ac79245d02 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.72 2010/06/10 08:13:49 itagaki Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.73 2010/06/11 10:13:08 heikki Exp $ -->
<chapter id="high-availability">
<title>High Availability, Load Balancing, and Replication</title>
@@ -818,8 +818,10 @@ host replication foo 192.168.1.100/32 md5
</para>
<para>
The host name and port number of the primary, connection user name,
- and password are specified in the <filename>recovery.conf</> file or
- the corresponding environment variable on the standby.
+ and password are specified in the <filename>recovery.conf</> file.
+ The password can also be set in the <filename>~/.pgpass</> file on the
+ standby (specify <literal>replication</> in the <replaceable>database</>
+ field).
For example, if the primary is running on host IP <literal>192.168.1.50</>,
port <literal>5432</literal>, the superuser's name for replication is
<literal>foo</>, and the password is <literal>foopass</>, the administrator
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 57357b18bb2..646cb16cdd1 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.306 2010/05/26 23:49:18 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.307 2010/06/11 10:13:08 heikki Exp $ -->
<chapter id="libpq">
<title><application>libpq</application> - C Library</title>
@@ -6233,7 +6233,8 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough)
A host name of <literal>localhost</> matches both TCP (host name
<literal>localhost</>) and Unix domain socket (<literal>pghost</> empty
or the default socket directory) connections coming from the local
- machine.
+ machine. In a standby server, a database name of <literal>replication</>
+ matches streaming replication connections made to the master server.
</para>
<para>
diff --git a/doc/src/sgml/recovery-config.sgml b/doc/src/sgml/recovery-config.sgml
index 5bea0f37d6a..d555960b805 100644
--- a/doc/src/sgml/recovery-config.sgml
+++ b/doc/src/sgml/recovery-config.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/recovery-config.sgml,v 2.7 2010/06/10 08:13:49 itagaki Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/recovery-config.sgml,v 2.8 2010/06/11 10:13:09 heikki Exp $ -->
<chapter Id="recovery-config">
<title>Recovery Configuration</title>
@@ -268,9 +268,10 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
primary (see
<xref linkend="streaming-replication-authentication">).
A password needs to be provided too, if the primary demands password
- authentication. (The password can be provided either in
- the <varname>primary_conninfo</varname> string or in a separate
- <filename>~/.pgpass</> file on the standby server.)
+ authentication. It can be provided in the
+ <varname>primary_conninfo</varname> string, or in a separate
+ <filename>~/.pgpass</> file on the standby server (use
+ <literal>replication</> as the database name).
Do not specify a database name in the
<varname>primary_conninfo</varname> string.
</para>
diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
index 1807fde9e4b..b62f48be825 100644
--- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
+++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
@@ -10,7 +10,7 @@
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
@@ -77,7 +77,7 @@ _PG_init(void)
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;
@@ -85,8 +85,14 @@ libpqrcv_connect(char *conninfo, XLogRecPtr startpoint)
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)