Имеется один рабочий сервер с 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 после переноса не может выполнить какие-то завершающие шаги.