On Wed, 2021-11-10 at 20:36 -0500, Rita wrote: > On Wed, Nov 10, 2021 at 7:24 PM Ben Chobot <bench@xxxxxxxxxxxxxxx> wrote: > >Rita wrote on 11/10/21 1:25 PM: > > > Hello. > > > > > > I am testing alerting on my primary and standby setup. I have async > > > replication working but I would like to temporarily pause it so the > > > value of 'state' isn't streaming. (select * from pg_stat_replication). > > > > > > How can I do that? > > > > By reading the fine manual: > > https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE > > > > The function you are looking for is pg_wal_replay_pause(). > > Yes, I have read the manual and seen this. It pauses the replication (select pg_is_wal_replay_paused()). > But on the primary, when I look at pg_stat_replication, it still says 'streaming' in the > state column. My question was how do I get it from 'streaming' to anything else? > (https://www.postgresql.org/docs/11/monitoring-stats.html#PG-STAT-REPLICATION-VIEW) ? > > I want to trigger an alert when 'streaming' isn't there. Or is there a better way to do it? If the standby is no longer streaming, that certainly should trigger an alert. But if you want to monitor replication delay, you should instead use a query like SELECT pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) FROM pg_stat_replication; That will measure the replay delay in bytes, and you can alert if the value exceeds a certain amount. Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com