Повторное использование старого мастера в качестве ведомого в PostgreSQL
У меня есть главный узел (A) и подчиненный узел (B).
Предположим, что контрольная точка произошла в момент времени T, и некоторые транзакции были завершены после контрольной точки (грязные страницы еще не сохранены на диске). Предположим, что позиция WAL после транзакции равна X.
Теперь узел A выходит из строя, и я выдвинул B как master.
Я хочу восстановить узел A и присоединить его в качестве ведомого к B (текущий мастер).
Я сомневаюсь, что транзакции, которые произошли в узле A (старый главный узел A), будут воспроизведены, а затем он воспроизведет потоковую передачу данных с текущего мастера (B)??
Мои вопросы
1) В этом случае, с какого момента транслируется поток от нового мастера к новому подчиненному? С контрольно-пропускного пункта или из положения Х?
2) когда старый мастер повторно используется в качестве подчиненного, откуда начинается воспроизведение? Любой старый подарок присутствует в узле?
1 ответ
Если узел A опережает узел B, вам нужно использовать pg_rewind
перемотать его в состояние, в котором он может быть использован в качестве резервного для B.
Он определяет последнюю общую контрольную точку и заменяет все блоки, которые были изменены с тех пор.