Владислав (ra1aie) wrote,
Владислав
ra1aie

Category:

Восстановление кластера MariaDB

Проблема: в кластере из 3 нод две упали (крэш), а оставшаяся загрустила и шлет клиентов нахер с любыми запросами.

Причина: согласно логике WSREP, одна нода не может собрать кворум и переходит в режим non-primary, переставая обрабатывать запросы клиентов во избежание split-brain. Если остальные ноды отвалились из-за сетевых проблем, то кластер пересоберется автоматически, как только они снова смогут друг друга видеть. А вот если остальные ноды, как в описываемом случае, именно что упали - то их перезапуск будет "радовать" нас ошибкой вида "view# -1: non-Primary", и сообщением о невозможности найти кластер.

Решение: заходим на выжившую ноду и в консоли даем команду "SET GLOBAL wsrep_provider_options='pc.bootstrap=true';", тем самым принудительно устанавливая ей высший приоритет. После чего она переходит в primary mode и мы можем запустить остальные ноды, которые при старте стянут информацию с нее. Важно: прежде, чем это делать, трижды проверьте, что остальные ноды таки реально не работают, иначе можно получить разные данные на разных нодах и все вытекающие из этого последствия.

Если при запуске остальные ноды валятся в segfault - лечится удалением всех файлов в mysql home directory.
Tags: it, mariadb, mysql, сисадминское, танцы с бубном
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 1 comment