иногда сам выходить из рекавери, а иногда висит и ждет пока ему скажут pg_wal_replay_resume()? я что-то не понимаю похоже как оно должно работать
ps. я бы хотел знать когда рекавери заканачиватся и проверяю для этого pg_last_wal_replay_lsn() и выхожу из цикла, если нет изменений. и потом вызываю pg_wal_replay_resume(), чтобы выйти из режима рекавери. но, видимо, оно как-то не так работает
Я вот вообще непонял, что вы делаете и зачем. А заодно и последовательность действий, которую вы видите.
я пробую сделать pitr в постгре. у меня есть base backup и wal archive. восстанавливаю бэкап, создаю recovery.conf и все восстанавливается. есть одно "но": мне нужно знать когда wal archive полностью проигрался до точки восстановления. для этого я мониторю pg_last_wal_replay_lsn() и если результат не меняется в течении N секунд - то значит готово. раз все готово, то постгрес должен был бы выйти из recovery mode и начать отвечать на клиентские запросы, но это случается не всегда. иногда он выходит, а иногда может висеть в хоть 5 минут, хоть 25. бэкап на котором я тестирую состоит из одной таблицы c одним полем, wal - инсерты в таблицу раз в секунду. в архиве лежат минут 10 (т.е. 600-700 штук запросов).
Видимо, что-то не то написали в recovery.conf (кстати, старый что ли постгрес какой-то?), что постгрес не достигает recovery target. Мониторить pg_last_wal_replay_lsn() для такого — это вообще совсем маразм.
достигает. если бы не достигал, то ругался бы в лог ошибок.
Когда достигает — тожэ что-то пишэт.
Я не знаю но может это место в логе кончилось? Тогда надо добавить место, и сообщить что можно работать дальше
Обсуждают сегодня