повторное использование старого мастера в качестве ведомого в PostgreSQL - PullRequest
0 голосов
/ 04 октября 2018

У меня есть главный узел (A) и подчиненный узел (B).

Предположим, что контрольная точка произошла в момент времени T, и некоторые транзакции были завершены после контрольной точки (грязные страницы еще не сохранилисьна диске).Предположим, что позиция WAL после транзакции равна X.

Теперь узел A выходит из строя, и я выдвинул B как master.

Я хочу восстановить узел A и присоединить его в качестве подчиненного к B (текущий мастер).

Я сомневаюсь, что транзакции, которые произошли в узле А (старом главном узле А), будут воспроизведены, а затем воспроизведет потоковую передачу от текущего мастера (В) ??

Мои вопросы:

1) В каком случае с какого момента транслируется поток от нового хозяина к новому рабу?С контрольной точки или с позиции X?

2) когда старый мастер повторно используется в качестве ведомого, откуда начинается воспроизведение?Любой старый подарок в узле будет воспроизведен?

1 Ответ

0 голосов
/ 04 октября 2018

Если узел A опережает узел B, вам нужно использовать pg_rewind, чтобы перемотать его в состояние, в котором он может быть использован в качестве резерва для B.

Что этовыполняет определение последней общей контрольной точки и заменяет все блоки, которые изменились с тех пор.

...