Thread: Replication Issues
Hi Team,
I have configured replication using slot ,But it failed by throwing the ERROR pg_basebackup: could not get transaction log end position from server: ERROR: requested WAL segment 0000000100002C9D00000085 has already been removed , which is unexpected because i have created the slot on master first and then issued the base backup command from slave's end
the command is
usr/lib/postgresql/9.5/bin/pg_basebackup -U user --max-rate='150 M' --progress --verbose --write-recovery-conf --status-interval='10 s' -D data_dir -h host_ip -p 5433
These are the settings on my master
archive_mode=on
archive_command='/bin/true'
wal_keep_segments=512max_wal_senders=4
Series of steps i have followed :
1) Enabled password less authentication between master and slave
2)created slot on master (assuming it will store wal's regardless of other settings)
3)started basebackup from slave's end
4)Issued checkpoint at master's end
Here my concern is , slave should recover WAL from replication slot but why i got the above ERROR , Why slot removed the requested wal file , Could you please let me know the reason why it happened or did i miss something ?
Thanks,
Bhargav K
On 28/9/18 9:00 π.μ., bhargav kamineni wrote:
Hi Team,I have configured replication using slot ,But it failed by throwing the ERROR pg_basebackup: could not get transaction log end position from server: ERROR: requested WAL segment 0000000100002C9D00000085 has already been removed , which is unexpected because i have created the slot on master first and then issued the base backup command from slave's endthe command isusr/lib/postgresql/9.5/bin/pg_basebackup -U user --max-rate='150 M' --progress --verbose --write-recovery-conf --status-interval='10 s' -D data_dir -h host_ip -p 5433
Either :
add "-X stream" to the pg_basebackup command
or
increase wal_keep_segments on the server.
These are the settings on my masterarchive_mode=onarchive_command='/bin/true'wal_keep_segments=512max_wal_senders=4Series of steps i have followed :1) Enabled password less authentication between master and slave2)created slot on master (assuming it will store wal's regardless of other settings)3)started basebackup from slave's end4)Issued checkpoint at master's endHere my concern is , slave should recover WAL from replication slot but why i got the above ERROR , Why slot removed the requested wal file , Could you please let me know the reason why it happened or did i miss something ?Thanks,Bhargav K
-- Achilleas Mantzios IT DEV Lead IT DEPT Dynacom Tankers Mgmt
bhargav kamineni wrote: > Hi Team, > > I have configured replication using slot ,But it failed by throwing the > ERROR pg_basebackup: could not get transaction log end position from server: > ERROR: requested WAL segment 0000000100002C9D00000085 has already been removed , > which is unexpected because i have created the slot on master first > and then issued the base backup command from slave's end > the command is > usr/lib/postgresql/9.5/bin/pg_basebackup -U user --max-rate='150 M' --progress --verbose --write-recovery-conf --status-interval='10s' -D data_dir -h host_ip -p 5433 > These are the settings on my master > archive_mode=on > archive_command='/bin/true' > wal_keep_segments=512 > max_wal_senders=4 > Series of steps i have followed : > 1) Enabled password less authentication between master and slave > 2)created slot on master (assuming it will store wal's regardless of other settings) > 3)started basebackup from slave's end > 4)Issued checkpoint at master's end > > Here my concern is , slave should recover WAL from replication slot but why i > got the above ERROR , Why slot removed the requested wal file , Could you please > let me know the reason why it happened or did i miss something ? I guess your base backup took long enough for the required WAL segments to be removed by the time it was done. To prevent that, create a replication slot *before* you perform pg_basebackup and use the options "-S <slotname> -X stream" of pg_basebackup. You then use the same slot in "recovery.conf". That way you cannot lose any WAL. Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com
Ee are using 9.5 version, slot option -s is not available ,can I go with -X stream option ?
On Fri 28 Sep, 2018, 12:01 PM Laurenz Albe, <laurenz.albe@cybertec.at> wrote:
bhargav kamineni wrote:
> Hi Team,
>
> I have configured replication using slot ,But it failed by throwing the
> ERROR pg_basebackup: could not get transaction log end position from server:
> ERROR: requested WAL segment 0000000100002C9D00000085 has already been removed ,
> which is unexpected because i have created the slot on master first
> and then issued the base backup command from slave's end
> the command is
> usr/lib/postgresql/9.5/bin/pg_basebackup -U user --max-rate='150 M' --progress --verbose --write-recovery-conf --status-interval='10 s' -D data_dir -h host_ip -p 5433
> These are the settings on my master
> archive_mode=on
> archive_command='/bin/true'
> wal_keep_segments=512
> max_wal_senders=4
> Series of steps i have followed :
> 1) Enabled password less authentication between master and slave
> 2)created slot on master (assuming it will store wal's regardless of other settings)
> 3)started basebackup from slave's end
> 4)Issued checkpoint at master's end
>
> Here my concern is , slave should recover WAL from replication slot but why i
> got the above ERROR , Why slot removed the requested wal file , Could you please
> let me know the reason why it happened or did i miss something ?
I guess your base backup took long enough for the required WAL segments to be
removed by the time it was done.
To prevent that, create a replication slot *before* you perform pg_basebackup
and use the options "-S <slotname> -X stream" of pg_basebackup.
You then use the same slot in "recovery.conf".
That way you cannot lose any WAL.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com
On 28/9/18 1:50 μ.μ., bhargav kamineni wrote:
-S is intended when you plan to use the backup as a hot standby, when you must use the same replication slot.Ee are using 9.5 version, slot option -s is not available ,can I go with -X stream option ?
If you plan to use the backup as a stand alone backup you don't need this option anyway.
On Fri 28 Sep, 2018, 12:01 PM Laurenz Albe, <laurenz.albe@cybertec.at> wrote:bhargav kamineni wrote:
> Hi Team,
>
> I have configured replication using slot ,But it failed by throwing the
> ERROR pg_basebackup: could not get transaction log end position from server:
> ERROR: requested WAL segment 0000000100002C9D00000085 has already been removed ,
> which is unexpected because i have created the slot on master first
> and then issued the base backup command from slave's end
> the command is
> usr/lib/postgresql/9.5/bin/pg_basebackup -U user --max-rate='150 M' --progress --verbose --write-recovery-conf --status-interval='10 s' -D data_dir -h host_ip -p 5433
> These are the settings on my master
> archive_mode=on
> archive_command='/bin/true'
> wal_keep_segments=512
> max_wal_senders=4
> Series of steps i have followed :
> 1) Enabled password less authentication between master and slave
> 2)created slot on master (assuming it will store wal's regardless of other settings)
> 3)started basebackup from slave's end
> 4)Issued checkpoint at master's end
>
> Here my concern is , slave should recover WAL from replication slot but why i
> got the above ERROR , Why slot removed the requested wal file , Could you please
> let me know the reason why it happened or did i miss something ?
I guess your base backup took long enough for the required WAL segments to be
removed by the time it was done.
To prevent that, create a replication slot *before* you perform pg_basebackup
and use the options "-S <slotname> -X stream" of pg_basebackup.
You then use the same slot in "recovery.conf".
That way you cannot lose any WAL.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com
-- Achilleas Mantzios IT DEV Lead IT DEPT Dynacom Tankers Mgmt