Как настроить SST через xtrabackup между нодами mysql galera от codership?

Имеется один рабочий сервер с MySQL Galera и базой (192.168.0.102), один сервер с пустой MySQL Galera (192.168.0.103) и еще один сервер с Galera Arbitrator (192.168.0.104), на котором в дальнейшем будет установлен HAProxy. Везде стоит Debian 7.1.0.

Основная цель на текущем этапе - сделать кластер из двух нод и арбитра, но все попытки сделать это заканчиваются тем, что SST методом xtrabackup на новый сервер выполняется не полностью. Т.е. база реплицируется целиком, но достучаться до нее невозможно.

ни через консоль:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

ни через скрипты:
PHP Warning:  mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on '192.168.0.103' (111)

В логах все записи заканчиваются на строке:
131202 19:51:01 [Note] WSREP: Requesting state transfer: success, donor: 0

Кластер при этом находится в таком вот состоянии:
wsrep_local_state_comment    | Donor/Desynced
wsrep_incoming_addresses     | 192.168.0.102:3306,,192.168.0.103:3306
wsrep_cluster_conf_id        | 3                                     
wsrep_cluster_size           | 3

Перезапуск процессов ничего не дает, кластер впадает в такое же состояние, за исключением того, что фактического переноса данных уже не производит, базы синхронизированы. Если второй сервер запустить отдельно от кластера, то видно, что база скопирована целиком, к ней можно обращаться любым способом.

Конфиг первой ноды:
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider_options="gcache.size=2G"
wsrep_cluster_name="clusterTest"
wsrep_cluster_address="gcomm://"
wsrep_node_name="node-1"
wsrep_node_address=192.168.0.102
wsrep_node_incoming_address=192.168.0.102
wsrep_slave_threads=16
wsrep_sst_method=xtrabackup
wsrep_sst_receive_address=192.168.0.102
wsrep_sst_auth=root:somepass

Конфиг второй ноды:
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider_options="gcache.size=2G"
wsrep_cluster_name="clusterTest"
wsrep_cluster_address="gcomm://192.168.0.102"
wsrep_node_name="node-2"
wsrep_node_address=192.168.0.103
wsrep_node_incoming_address=192.168.0.103
wsrep_slave_threads=16
wsrep_sst_method=xtrabackup
wsrep_sst_receive_address=192.168.0.103
wsrep_sst_auth=root:somepass
wsrep_sst_donor="node-1"

Если вместо xtrabackup использовать rsync, то после SST весь кластер работает как положено. Ощущение, что xtrabackup после переноса не может выполнить какие-то завершающие шаги.
  • Вопрос задан
  • 3191 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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