Re: Notification or action when WAL archives fully restored and streaming replication started

Started by Michael Cassanitiabout 7 years ago4 messagesgeneral
Jump to latest
#1Michael Cassaniti
m.cassaniti@gmail.com

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,
I've got master/slave replication setup between a few hosts. At any
point a slave could become a master. I've got appropriate locking in
place using an external system so that only one master can exist at a
time. I'm having trouble determining when my slaves are in sync with the
current master so that they can be a candidate for promotion. I want
some form of indicator _without reading a log_ when streaming
replication has started.

My recovery.conf for slaves:
  standby_mode = on
  restore_command = 'gunzip < /archives/wal/%f > %p'
  recovery_target_timeline = 'latest'
  primary_conninfo = 'host=PGSQL_FRONTEND_NAME port=5432
user=PGSQL_RECOVERY_USER password=PGSQL_RECOVERY_PASS'

Appropriate postgresql.conf:
  wal_level = replica
  archive_mode = on
  archive_command = 'test ! -f /archives/wal/%f && gzip < %p >
/archives/wal/%f'
  archive_timeout = 15min

Regards,
Michael Cassaniti
-----BEGIN PGP SIGNATURE-----

iG0EAREIAB0WIQT0DIHSqEo48gI0VT9pF1oDt4Q+5wUCXInRqgAKCRBpF1oDt4Q+
5661AN4nRJPXF/M0ZoLg3JVH8f0UsO1WlouHruIRMnsnAN4q9x4G6S4RcobUm5Kh
qTNOD2F3v6A8ng4ABFpm
=5qCA
-----END PGP SIGNATURE-----

#2Michael Paquier
michael@paquier.xyz
In reply to: Michael Cassaniti (#1)

On Thu, Mar 14, 2019 at 02:59:38PM +1100, Michael Cassaniti wrote:

I've got master/slave replication setup between a few hosts. At any
point a slave could become a master. I've got appropriate locking in
place using an external system so that only one master can exist at a
time. I'm having trouble determining when my slaves are in sync with the
current master so that they can be a candidate for promotion. I want
some form of indicator _without reading a log_ when streaming
replication has started.

pg_stat_replication on the primary, no? Here is its documentation:
https://www.postgresql.org/docs/11/monitoring-stats.html#MONITORING-STATS-VIEWS
--
Michael

#3Michael Cassaniti
m.cassaniti@gmail.com
In reply to: Michael Paquier (#2)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 14/3/19 3:10 pm, Michael Paquier wrote:

On Thu, Mar 14, 2019 at 02:59:38PM +1100, Michael Cassaniti wrote: >> I've got master/slave replication setup between a few hosts. At any

point a slave could become a master. I've got appropriate locking in
place using an external system so that only one master can exist at a
time. I'm having trouble determining when my slaves are in sync with

the >> current master so that they can be a candidate for promotion. I
want >> some form of indicator _without reading a log_ when streaming >>
replication has started. > > pg_stat_replication on the primary, no?
Here is its documentation: >
https://www.postgresql.org/docs/11/monitoring-stats.html#MONITORING-STATS-VIEWS

-- > Michael This at least points me in the right direction. I need

something on the receiver side, so the state column in
pg_stat_wal_receiver might cover. I can check for state = streaming, but
the DB won't accept connections in standby mode.

Thanks for the quick reply.
-----BEGIN PGP SIGNATURE-----

iG0EAREIAB0WIQT0DIHSqEo48gI0VT9pF1oDt4Q+5wUCXInxjAAKCRBpF1oDt4Q+
562uAOCX3SfCi4ppOd0hBhzsdRWh/3yPeMm8F7c7BgrWAN4tGe+7RnRMrLeE6pOU
/5kdwISbxH6fmBEZ1CZM
=qCpv
-----END PGP SIGNATURE-----

#4Michael Cassaniti
m.cassaniti@gmail.com
In reply to: Michael Cassaniti (#3)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 14/3/19 5:15 pm, Michael Cassaniti wrote:

On 14/3/19 3:10 pm, Michael Paquier wrote: > > On Thu, Mar 14, 2019

at 02:59:38PM +1100, Michael Cassaniti wrote: >> I've got master/slave
replication setup between a few hosts. At any > >> point a slave could
become a master. I've got appropriate locking in > >> place using an
external system so that only one master can exist at a > >> time. I'm
having trouble determining when my slaves are in sync with > the >>
current master so that they can be a candidate for promotion. I > want

some form of indicator _without reading a log_ when streaming >> >

replication has started. > > pg_stat_replication on the primary, no? >
Here is its documentation: > >
https://www.postgresql.org/docs/11/monitoring-stats.html#MONITORING-STATS-VIEWS

-- > Michael This at least points me in the right direction. I need

something on the receiver side, so the state column in >

pg_stat_wal_receiver might cover. I can check for state = streaming, but

the DB won't accept connections in standby mode. > > Thanks for the

quick reply. Actually I was wrong. For some reason my testing initially
didn't want to allow read-only connections. Problem solved.
-----BEGIN PGP SIGNATURE-----

iG0EAREIAB0WIQT0DIHSqEo48gI0VT9pF1oDt4Q+5wUCXIoJgAAKCRBpF1oDt4Q+
53AnAOCQSbaOZy+K1qR8C3+EjBWshY0qwwVmHIG+Khy0AOCmAS+TgqE+mngBzpx5
jgMbyjaDn2RXvS14xW68
=sk4C
-----END PGP SIGNATURE-----