From: | Michael Banck <michael(dot)banck(at)credativ(dot)de> |
---|---|
To: | Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Create replication slot in pg_basebackup if requested and not yet present |
Date: | 2017-03-19 10:21:47 |
Message-ID: | 1489918907.4172.18.camel@credativ.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
with the default configuration improvements so far for 10, it seems to
be very easy to setup streaming replication (at least locally):
$ initdb --pgdata=data1
$ pg_ctl --pgdata=data1 start
$ pg_basebackup --pgdata=data2 --write-recovery-conf
$ sed -i -e 's/^#port.=.5432/port = 5433/' \
> -e 's/^#hot_standby.=.off/hot_standby = on/' \
> data2/postgresql.conf
$ pg_ctl --pgdata=data2 start
(there might be a case for having hot_standby=on by default, but I think
that got discussed elsewhere and is anyway a different thread).
However, the above does not use replication slots, and if you want to do
so, you get:
$ pg_basebackup --pgdata=data2 --write-recovery-conf --slot=pg2
2017-03-19 11:04:37.978 CET [25362] ERROR: replication slot "pg2" does
not exist
pg_basebackup: could not send replication command "START_REPLICATION":
ERROR: replication slot "pg2" does not exist
pg_basebackup: child process exited with error 1
pg_basebackup: removing data directory "data2"
The error message is clear enough, but I wonder whether people will
start writing streaming replication tutorials just glossing over this
because it's one more step to run CREATE_REPLICATION_SLOT manually.
So I propose the attached tiny patch to just create the slot (if it does
not exist already) in pg_basebackup, somewhat similar to what
pg_receivewal does, albeit unconditionally, if the user explicitly
requested a slot:
$ pg_basebackup --pgdata=data2 --write-recovery-conf --slot=pg2
$ echo $?
0
$ psql -c "DROP_REPLICATION_SLOT pg2" "host=127.0.0.1 port=5432 replication=database user=mba dbname=postgres"
SELECT
$
This would get us somewhat closer to near zero-config replication, in my
opinion. Pardon me if that was discussed already and shot down
Comments?
Michael
--
Michael Banck
Projektleiter / Senior Berater
Tel.: +49 2166 9901-171
Fax: +49 2166 9901-100
Email: michael(dot)banck(at)credativ(dot)de
credativ GmbH, HRB Mönchengladbach 12080
USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer
Attachment | Content-Type | Size |
---|---|---|
0001-Create-replication-slot-in-pg_basebackup-if-requeste.patch | text/x-patch | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2017-03-19 11:32:50 | Re: PoC plpgsql - possibility to force custom or generic plan |
Previous Message | Tatsuo Ishii | 2017-03-19 10:18:48 | Re: [HACKERS] Questionable tag usage |