Я использую кластер Galera с тремя узлами и несколькими мастерами под MariaDB.
Один из узлов вышел из строя из-за аппаратного сбоя (node3), и по какой-то причине это также привело к сбою одного из исправных узлов (node2). Итак, у меня остался один работающий узел (node1), который на данный момент является наиболее продвинутым в кластере.
Я жду, когда моя хостинговая компания исправит третий узел, но пока что не могу перезапустить второй узел. При попытке перезапуска я получаю следующие ошибки из xtrabackup-v2
программа при попытке передачи состояния:
[Warning] WSREP: 1.0 (node1): State transfer to 0.0 (node2) failed: -2 (No such file or directory)
[ERROR] WSREP: gcs/src/gcs_group.cpp:gcs_group_handle_join_msg():737: Will never receive state. Need to abort.
Это будет продолжаться бесконечно, пока я не остановлю службу mysqld. Я понятия не имею, к чему относится (Нет такого файла или каталога).
Разбившийся узел grastate.dat
выглядит так:
version: 2.1
uuid: 00000000-0000-0000-0000-000000000000
seqno: -1
safe_to_bootstrap: 0
Что я могу сделать, чтобы перезапустить отказавший узел?
Обновление 1:
Я очистил каталог данных, но узел по-прежнему не присоединяется к кластеру. Ошибка файла кажется уместной, но она не помогает мне понять, в чем проблема.
State transfer to 0.0 (node2) failed: -2 (No such file or directory)
Обновление 2:
Я нашел дополнительную информацию об ошибке на донорском узле:
SREP_SST: [ERROR] innobackupex not in path: /usr/sbin:/sbin:/usr/ etc..
Делать which innobackupex
показывает, что эта программа отсутствует.
Решено.
Разбившийся узел был настроен на использование другого метода SST для узла-донора. Раньше он использовал Percona xtrabackup, и по ошибке или по глупости конфиги устарели.