Как «безопасно» завершить работу / перезапустить кластер 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)`

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

1
задан 5 January 2018 в 18:55
2 ответа

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

0
ответ дан 4 December 2019 в 04:16

Я знаю, что сейчас поздно ответить на этот вопрос. Но на всякий случай любой, кто ищет точный ответ о том, как безопасно выключить и перезапустить кластер 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- на node3 sudo sytsemctl start mariadb

0
ответ дан 4 December 2019 в 04:16

Теги

Похожие вопросы