Назад | Перейти на главную страницу

Как «безопасно» выключить / перезапустить кластер Galera?

При первой настройке Galera (Ubuntu 14.04) я не могу перезапустить кластер после перезагрузки узлов. Я слежу за это руководство и в нем точно не упоминается, как обрабатывать выключение или перезагрузку (для исправлений ядра, обновлений гипервизора, планового обслуживания).

Я нашел немного информации Вот который объясняет, как найти узел, который является «safe_to_bootstrap», но я думаю, что это описывает сбойный узел. Ссылка выше описывает это как сбойный узел, которому, казалось бы, не повезло с восстановлением:

# cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid:    a4f9af07-f235-11e7-a0c0-233dd732dc29
seqno:   -1
safe_to_bootstrap: 1

Однако когда я пытаюсь запустить этот узел, я получаю сообщение об ошибке daemon.log:

`WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)`

Как лучше всего выключить кластер и как его безопасно перезапустить? Я предполагаю обычное reboot команда не подходит для полного завершения работы кластера Galera.

Я знаю, что поздно отвечать на этот вопрос. Но на всякий случай любой, кто ищет точный ответ о том, как безопасно выключить и перезапустить кластер mariadb galera.

Например, у нас есть три узла mariadb galera (1,2,3), запущенных на серверах ubuntu. Чтобы остановить / выключить кластер безопасным способом без разрушения кластера:

  1. Убедитесь, что нет активных транзакций или подключений к узлам кластера.
  2. На узле 3 выполните следующую команду, чтобы проверить, обновлен ли узел: ПОКАЗАТЬ СТАТУС КАК 'wsrep_local_state_comment'; вы должны увидеть «синхронизировано» в качестве возвращаемого значения 3 - выполните следующую команду, чтобы остановить службу mariadb: sudo systemctl stop mariadb
  3. На node2 и node1 повторите те же шаги, сначала на node2, а затем на node1.

Теперь вы остановили кластер galera наилучшим образом и, чтобы начать снова, начните с node1 следующим образом:

1- на узле 1 выполните следующую команду: galera_new_cluster 2- Затем на узле 2 sudo systemctl start mariadb 3- на узле 3 sudo sytsemctl start mariadb

Для корректного завершения работы кластера сначала проверьте состояние вашего кластера. Для каждого узла проверьте статус. Затем, если статус синхронизирован, вы можете выключать узел по одному. Сложность заключается в том, что при повторном запуске узлов необходимо воссоздать кластер, поскольку завершение работы разрушает кластер. Если все узлы в кластере синхронизированы (то есть содержат одинаковые положительные значения «seqno»), то любой узел может запустить новый кластер. Если возможно, я бы тщательно протестировал это перед запуском в производство.