Комментарии 9
По-моему, проблема рестарта при смене реплика=>мастер не страшна — всё равно даунтайм больше времени рестарта — требуется же задетектить саму проблему, принять решение что надо менять мастера и тп.
0
Автор, думаю, вы не правы (ну или частично неправы). При втором способе такое прокатит только если будет совершенно случайная ситуация когда на слэйвах после отключения мастера актуальными оказалась одинаковые точки в бинарном логе. При активной работе с БД даже при штатном отключении мастера это очень маловероятно. А уж тем более при падении на мастер метеорита.
Я с этим экспериментировал и мне не удалось вторым способ восстановить работу слэйвов без перезаливки базы.
Я с этим экспериментировал и мне не удалось вторым способ восстановить работу слэйвов без перезаливки базы.
0
Не могли бы вы рассказать в чём именно заключалась проблема — я постараюсь её воспроизвести? Дело в том, что переключение со смещенной позицией(когда есть отстающие реплики) я тоже, разумеется, рассматривал — все отработало штатно. В моём случае я тестировался так:
1. Из /dev/urandom в 5-6 потоков льются данные в одну из таблиц.
2. Я закрываю мастер фаерволлом от одной из реплик(дабы спровоцировать отставание), жду пару минут — делал и с этим пунктом и без него.
3. Выключаю мастер.
4. Делаю описанное выше.
Более того, мне известен случай, когда случай, когда подобным образом неоднократно переключали production-кластер. Успешно, разумеется.
1. Из /dev/urandom в 5-6 потоков льются данные в одну из таблиц.
2. Я закрываю мастер фаерволлом от одной из реплик(дабы спровоцировать отставание), жду пару минут — делал и с этим пунктом и без него.
3. Выключаю мастер.
4. Делаю описанное выше.
Более того, мне известен случай, когда случай, когда подобным образом неоднократно переключали production-кластер. Успешно, разумеется.
0
Если на будущем мастере смещение будет более ранним чем на одном из слэйвов, то слэйв к нему не подключится.
0
Я не просто так писал о необходимости найти самую свежую реплику в начале второй части поста. Или я вас неправильно понял?
Касательно предпоследнего абзаца(про перемещение файлов xlog`а между машинами) — да, каюсь, не сработало — исправил на работающий вариант.
Касательно предпоследнего абзаца(про перемещение файлов xlog`а между машинами) — да, каюсь, не сработало — исправил на работающий вариант.
0
спасибо за статью.
скорее всего первый пункт и не нужен. можно брать любую из реплик в качесте мастера, нужно лиш вычитсить pg_xlog с остальных.
www.sql.ru/forum/actualthread.aspx?tid=933852
скорее всего первый пункт и не нужен. можно брать любую из реплик в качесте мастера, нужно лиш вычитсить pg_xlog с остальных.
www.sql.ru/forum/actualthread.aspx?tid=933852
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Отказ мастера в PostgreSQL-кластере: как быть?