Развалилась streaming_replication

Изображение Maxim Filatov

Добрый день, коллеги.

Было: мастер и два слейва (streaming replication, PostgreSQL 9.0.4)

Мастер умер насильственной смертью.
Один из слейвов был сделан мастером.
Натравляю на него второй слейв, в логах постоянно повторяется:

22708 2011-10-14 18:56:28 MSDFATAL:  timeline 2 of the PRIMARY does NOT match recovery target timeline 1
11807 2011-10-14 18:56:31 MSDLOG:  restored log file "000000010000001900000005" FROM archive
11807 2011-10-14 18:56:31 MSDLOG:  invalid record length at 19/547D280

Гугл молчит, как рыба об лед.

Any ideas?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Очевидно, что второй слейв

Очевидно, что второй слейв ожидает от мастера того состояния, которое мастер ему предоставить не может. Мне кажется выход один - заинициализировать слейв по новой и синхронизировать с новым мастером.

Не совсем понял про

Изображение Maxim Filatov

Не совсем понял про состояния.
А чтобы заинициализировать слейв по новой - надо мастера тормозить.
Не очень бы хотелось.

Я думаю так (именно я думаю,

Я думаю так (именно я думаю, не претендую на истину в последней инстанции)
Когда мастер сдох, слейв запомнил его определённое состояние с которого надо начинать синхронизацию. Естественно, когда поднялся новый мастер, его состояние было другим, поэтому слейв не находит место с которого должен начать синхронизацию.

Состояние в данном случае (опять же как я понимаю) - это некий номер в WAL

Ммм... А как тогда быть в

Изображение Maxim Filatov

Ммм...
А как тогда быть в такой ситуации?
Можно как-то слейву принудительно сказать, что мастер главный, в не зависимости от?

Для этого надо состояние

Для этого надо состояние мастера прокинуть на слейв. Т.е. как там рекомендуется - сделать полный бакап мастера вместе с WAL, развернуть всё это на слейве и затем сказать слейву, что у него новый мастер. Как-то так. Подробностей не знаю - попробуйте доки попилить. И вроде как мастер для этого совсем не обязательно останавливать - только слейв.

Без остановки мастера бэкап

Изображение Maxim Filatov

Без остановки мастера бэкап можно сделать только с помощью pg_dump, AFAIK.
Но тогда никаких WAL мы не получим.

В любом случае - спасибо большое.
Пойду перечитывать доки.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023