|
Падение асинхронной репликации при сетевом разрыве
|
|||
---|---|---|---|
#18+
Добрый день! Наблюдаю остановку доставки логов на реплику при разрыве-восстановлении соединения. postgres 13.1, master-replication, async Проверял как работает отставание на стендбае recovery_min_apply_delay=1h переружаю реплику, делаю create table на праймари, через 5 минут вижу в pg_stat_replication отставание растет. Пока все нормально, новые логи качаются на реплику, но не накатываются. Рвем соединение на мастере опусканием сети. Делаем pg_switch_wal, наблюдаем пустой pg_stat_replication. Поднимаем сеть. Ожидаем появления записи в pg_stat_replication. Облом. FATAL: terminating walsender due to timeout Реплика FATAL: terminating walreceiver due to timeout Перегружаем реплику. А она говорит, что отставание в пределах нормы и логи качать не желает. consistent recovery state reached at 16/6B01C640 На праймари пустой pg_stat_replication. Вопрос: Что подкрутить, чтобы доставка логов восстанавливала свою работу при восстановлении связи? FATAL: terminating walreceiver due to timeout - зачем ему приказали падать, приложения обычно пишут так, чтобы переконнекчиваться по иксепшену на разрыве соединения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 12:38 |
|
Падение асинхронной репликации при сетевом разрыве
|
|||
---|---|---|---|
#18+
Shab, выключить recovery_min_apply_delay. У реплики уже локально лежат загруженные ранее WAL'ы, код startup делает не совсем лишённую смысла мысль, что walreceiver можно запустить когда обработаем всё что уже лежит локально и не надо это перекачивать заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 12:58 |
|
Падение асинхронной репликации при сетевом разрыве
|
|||
---|---|---|---|
#18+
Melkij, У меня отстающая реплика. Я хочу чтобы она отставала на указанное время, но логи качались без отставания. Это нужно, чтобы в любое время докатить PITR куда надо. Да и вообще, перегрузка реплики - это была просто проверка. Переподнимание walreceiver вот главная проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 13:10 |
|
Падение асинхронной репликации при сетевом разрыве
|
|||
---|---|---|---|
#18+
Shab, та неважно что вы хотите. walreceiver запускается (и перезапускается) только когда обработаны все уже загруженные wal. Именно так работает startup с recovery_min_apply_delay. Корректируйте хотелки относительно этого факта. Для pitr делают архив wal. Отдельная реплика с recovery_min_apply_delay может помочь быстрее развернуться, но не заменяет сам архив wal. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 13:34 |
|
|
start [/forum/topic.php?fid=53&msg=40056213&tid=1994128]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 375ms |
0 / 0 |