Re: setting up streaming replication - Mailing list pgsql-general

From b55white
Subject Re: setting up streaming replication
Date
Msg-id 9d194507-1d73-4222-a7e5-fa9417bfd69f@edison
Whole thread Raw
In response to setting up streaming replication  (Brad White <b55white@gmail.com>)
Responses Re: setting up streaming replication
List pgsql-general
On Oct 23, 2023 at 8:30 PM, Ron <ronljohnsonjr@gmail.com> wrote:

On 10/23/23 18:16, Brad White wrote:
> I'm stumped.
>
> Using this command to set up the slave and replication on PG v 15:
> "C:\Program Files\PostgreSQL\15\bin\pg_basebackup" -h 192.168.1.126 -U
> pgrep_user -p 5433 -D "C:\Program Files\PostgreSQL\15\data" -Fp -Xs -R
>
> If I have PG running on the remote server and the data directory is
> intact, then I get an error, Data exists and is not empty.
>
> If I shut down PG, delete data\*, restart PG, then it fails to start
> because the conf files are missing.
>
> If I leave PG shut down and run pg_basebackup, it times out and asks if pg
> is running and listening on the port. Of course it is not.
>
> I see lots of posts on how to use pg_basebackup, but apparently this isn't
> interesting because no one mentions whether pg should be running on
> the remote server.

No, it should not.

This is what works for me, in Linux on the standby system, where "buddy" and
"basebackup" are references in .pg_service.conf to the primary server:
PGHOST=...
pg_ctl status && pg_ctl stop -mfast
psql service=buddy -Xac "select pg_drop_replication_slot(slot_name)
                         from pg_replication_slots
                         where slot_name = 'pgstandby1';"
/usr/bin/rm -r $PGDATA/*
pg_basebackup --dbname=service=basebackup -D $PGDATA --progress \
              --checkpoint=fast -v \
              --write-recovery-conf --wal-method=stream \
              --create-slot --slot=pgstandby1 --compress=server-zstd
pg_ctl start -wt90 -l ${MajVer}/pgstart_standby.log

Source:
https://www.tecmint.com/configure-postgresql-streaming-replication-in-centos-8/

It sounds like you are saying that pg_basebackup should be run on the backup server,  not on the primary. But a detail that important would be mentioned in the documentation. Especially since it is directly compared to pg_dump, which I only run on the primary. 
If you are running it from the secondary, how can you have a pg_service.conf since data is empty?
Is all that stuff with slots necessary since the backup will automatically create a temporary slot for replication?

Thanks,  
Brad.

pgsql-general by date:

Previous
From: Steve Litt
Date:
Subject: Re: Presentation tools used ?
Next
From: "David G. Johnston"
Date:
Subject: Re: setting up streaming replication