pg_receivelwal vs synchronous

From: Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: pg_receivelwal vs synchronous
Date: 2019-06-26 15:05:54
Message-ID: 94c4d130-8efa-35c4-ba86-789f2cd9acfa@redhat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

PostgreSQL 11.4

Given,

postgresql.conf:
----------------
wal_level = replica
synchronous_commit = remote_apply
synchronous_standby_names = '*'

CREATE ROLE repluser WITH LOGIN REPLICATION PASSWORD 'mypwd';
SELECT pg_create_physical_replication_slot('replica1');

Execute

pg_receivewal -D /tmp/wal/ -S replica1 --synchronous -p 5432 -h
localhost -U repluser -W --dbname="application_name=replica1"

gives

LOG: standby "replica1" is now a synchronous standby with priority 1

Then

psql -c 'CREATE DATABASE test' postgres

which hangs (committed locally).

postgres=# SELECT * FROM pg_replication_slots ;
slot_name | plugin | slot_type | datoid | database | temporary |
active | active_pid | xmin | catalog_xmin | restart_lsn |
confirmed_flush_lsn
-----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
replica1 | | physical | | | f | t
| 12502 | | | 0/1655508 |
(1 row)

postgres=# SELECT * FROM pg_stat_replication;
pid | usesysid | usename | application_name | client_addr |
client_hostname | client_port | backend_start |
backend_xmin | state | sen
t_lsn | write_lsn | flush_lsn | replay_lsn | write_lag |
flush_lag | replay_lag | sync_priority | sync_state
-------+----------+----------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+----
-------+-----------+-----------+------------+-----------------+-----------------+-----------------+---------------+------------
12502 | 16384 | repluser | replica1 | ::1 |
| 45816 | 2019-06-26 11:00:45.098276-04 | |
streaming | 0/1
655508 | 0/1655508 | 0/1655508 | | 00:00:00.000267 |
00:00:00.000267 | 00:02:14.938836 | 1 | sync
(1 row)

So, replica1 is active and in sync mode, but replay_lsn is never
updated, and replay_lag keeps increasing.

What am I missing here ?

Thanks in advance !

Best regards,
Jesper

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Brad Nicholson 2019-06-26 15:32:11 Enabling checksums on a streaming replica
Previous Message John Lumby 2019-06-26 15:05:04 Re: REINDEX : new parameter to preserve current average leaf density as new implicit FILLFACTOR