Re: Missing docs: setting up replication slots for standbys

Lists: pgsql-docs
From: Josh Berkus <josh(at)agliodbs(dot)com>
To: pgsql-docs(at)postgreSQL(dot)org
Cc: Andres Freund <andres(at)2ndquadrant(dot)com>
Subject: Missing docs: setting up replication slots for standbys
Date: 2014-09-04 05:43:19
Message-ID: 5407FBF7.5070204@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs


Section 46.2.2 has this:

Note: PostgreSQL also has streaming replication slots (see Section
25.2.5), but they are used somewhat differently there.

Section 25.2.5 has this:

You can avoid this by setting wal_keep_segments to a value large enough
to ensure that WAL segments are not recycled too early, or by
configuring a replication slot for the standby.

... however, absolutely nowhere is it explained how to configure a
replication slot for a streaming replica. Is it, in fact, possible to
do so?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


From: Josh Berkus <josh(at)agliodbs(dot)com>
To: pgsql-docs(at)postgresql(dot)org
Subject: Re: Missing docs: setting up replication slots for standbys
Date: 2014-09-04 05:48:39
Message-ID: 5407FD37.9070501@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On 09/03/2014 10:43 PM, Josh Berkus wrote:
>
> Section 46.2.2 has this:
>
> Note: PostgreSQL also has streaming replication slots (see Section
> 25.2.5), but they are used somewhat differently there.
>
> Section 25.2.5 has this:
>
> You can avoid this by setting wal_keep_segments to a value large enough
> to ensure that WAL segments are not recycled too early, or by
> configuring a replication slot for the standby.
>
> ... however, absolutely nowhere is it explained how to configure a
> replication slot for a streaming replica. Is it, in fact, possible to
> do so?

Searching ... it is possible. However, the way to do so is actually
scattered among 5 different doc pages. I'm not sure that I'm up for the
surgery required to make this make sense to users ... anybody else have
the energy/time?

The relevant pages in the docs are these:

http://www.postgresql.org/docs/9.4/static/standby-settings.html
http://www.postgresql.org/docs/9.4/static/functions-admin.html#FUNCTIONS-REPLICATION
http://www.postgresql.org/docs/9.4/static/logicaldecoding-explanation.html#AEN66111
http://www.postgresql.org/docs/9.4/static/warm-standby.html#STREAMING-REPLICATION

... otherwise, I'll just write a blog or postgresguide or something.

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: pgsql-docs(at)postgreSQL(dot)org
Subject: Re: Missing docs: setting up replication slots for standbys
Date: 2014-09-04 06:03:18
Message-ID: 20140904060318.GD3625@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On 2014-09-03 22:43:19 -0700, Josh Berkus wrote:
>
> Section 46.2.2 has this:
>
> Note: PostgreSQL also has streaming replication slots (see Section
> 25.2.5), but they are used somewhat differently there.
>
> Section 25.2.5 has this:
>
> You can avoid this by setting wal_keep_segments to a value large enough
> to ensure that WAL segments are not recycled too early, or by
> configuring a replication slot for the standby.
>
> ... however, absolutely nowhere is it explained how to configure a
> replication slot for a streaming replica. Is it, in fact, possible to
> do so?

It actually is explained. I don't have a built source handy right now,
so chapter numbers... But at least the following is there:

<sect3 id="streaming-replication-slots-config">
<title>Configuration Example</title>
<para>
You can create a replication slot like this:
<programlisting>
postgres=# SELECT * FROM pg_create_physical_replication_slot('node_a_slot');
slot_name | xlog_position
-------------+---------------
node_a_slot |

postgres=# SELECT * FROM pg_replication_slots;
slot_name | slot_type | datoid | database | active | xmin | restart_lsn
-------------+-----------+--------+----------+--------+------+-------------
node_a_slot | physical | | | f | |
(1 row)
</programlisting>
To configure the standby to use this slot, <varname>primary_slot_name</>
should be configured in the standby's <filename>recovery.conf</>.
Here is a simple example:
<programlisting>
standby_mode = 'on'
primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
primary_slot_name = 'node_a_slot'
</programlisting>

and I'm pretty sure primary_slot_name and such is configured at the
appropriate place too.

That's not to say it can't be be expanded and/or better linked...

Greetings,

Andres Freund

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services


From: Josh Berkus <josh(at)agliodbs(dot)com>
To: pgsql-docs(at)postgresql(dot)org
Subject: Re: Missing docs: setting up replication slots for standbys
Date: 2014-09-04 06:06:50
Message-ID: 5408017A.6000806@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On 09/03/2014 11:03 PM, Andres Freund wrote:
> It actually is explained. I don't have a built source handy right now,
> so chapter numbers... But at least the following is there:
>
> <sect3 id="streaming-replication-slots-config">
> <title>Configuration Example</title>
> <para>
> You can create a replication slot like this:
> <programlisting>
> postgres=# SELECT * FROM pg_create_physical_replication_slot('node_a_slot');
> slot_name | xlog_position
> -------------+---------------
> node_a_slot |
>
> postgres=# SELECT * FROM pg_replication_slots;
> slot_name | slot_type | datoid | database | active | xmin | restart_lsn
> -------------+-----------+--------+----------+--------+------+-------------
> node_a_slot | physical | | | f | |
> (1 row)
> </programlisting>
> To configure the standby to use this slot, <varname>primary_slot_name</>
> should be configured in the standby's <filename>recovery.conf</>.
> Here is a simple example:
> <programlisting>
> standby_mode = 'on'
> primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
> primary_slot_name = 'node_a_slot'
> </programlisting>
>
> and I'm pretty sure primary_slot_name and such is configured at the
> appropriate place too.

Huh. I can't seem to find any way to navigate to that page. What is it
supposed to be under?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: Missing docs: setting up replication slots for standbys
Date: 2014-09-04 13:22:28
Message-ID: CAB7nPqTNoMy=ww6VqaOgwpoeG5rLib9eo6tt8rH=yX-mGmKX=Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On Thu, Sep 4, 2014 at 3:06 PM, Josh Berkus <josh(at)agliodbs(dot)com> wrote:
> On 09/03/2014 11:03 PM, Andres Freund wrote:
>> and I'm pretty sure primary_slot_name and such is configured at the
>> appropriate place too.
>
> Huh. I can't seem to find any way to navigate to that page. What is it
> supposed to be under?
Category seems adapted:
Chapter 25. High Availability, Load Balancing, and Replication
25.2. Log-Shipping Standby Servers
--
Michael