После обновления до Postgres 11 я не могу заставить свой рабочий резервный сервер догнать.В журналах все выглядит хорошо в конечном итоге:
2019-02-06 19:23:53.659 UTC [14021] LOG: consistent recovery state reached at 3C772/8912C508
2019-02-06 19:23:53.660 UTC [13820] LOG: database system is ready to accept read only connections
2019-02-06 19:23:53.680 UTC [24261] LOG: started streaming WAL from primary at 3C772/8A000000 on timeline 1
Но следующие запросы показывают, что все не в порядке:
warehouse=# SELECT coalesce(abs(pg_wal_lsn_diff(pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn())), -1) / 1024 / 1024 / 1024 AS replication_delay_gbytes;
replication_delay_gbytes
-------------------------
208.2317776754498486
(1 row)
warehouse=# select now() - pg_last_xact_replay_timestamp() AS replication_delay;
replication_delay
-------------------
01:54:19.150381
(1 row)
Через некоторое время (пару часов) replication_delay
остается околото же самое, но replication_delay_gbytes
растет, хотя примечание replication_delay
отстает от начала и replication_delay_gbytes
начинается около 0
.Во время запуска было несколько таких сообщений:
2019-02-06 18:24:36.867 UTC [14036] WARNING: xlog min recovery request 3C734/FA802AA8 is past current point 3C700/371ED080
2019-02-06 18:24:36.867 UTC [14036] CONTEXT: writing block 0 of relation base/16436/2106308310_vm
, но Googling предполагает, что это нормально.
Реплика была создана с использованием repmgr, запустив pg_basebackup
для выполнения клонирования, а затем запустивточная копия и видя, что это нагоняет.Ранее это работало с Postgres 10.
Есть мысли о том, почему эта реплика появляется, но постоянно отстает?