Сбой кластера Percona Xtradb

Я настроил кластер Percona Xtradb с 3 узлами. Первый узел запускается нормально с начальной загрузкой, но когда я пытаюсь запустить второй узел для присоединения к кластеру, я получаю следующую ошибку:

2015-08-27 18:08:08 25990 [Предупреждение] WSREP: не удалось подготовиться к добавочной передаче состояния: UUID локального состояния (00000000-0000-0000-0000-000000000000) не соответствует UUID состояния группы (a6b3fced-4ca1-11e5 -b5da-d69fa186273c): 1 (Операция не разрешена)
в galera/src/replicator_str.cpp:prepare_for_IST():463. IST будет недоступен.
27.08.2015 18:08:08 25990 [Примечание] WSREP: Участник 0.0 (db-gc-pxc2) запросил передачу состояния из "любого". В качестве донора выбрана версия 1.0 (db-gc-pxc1)(SYNCED).
27.08.2015 18:08:08 25990 [Примечание] WSREP: сдвиг PRIMARY -> JOINER (TO: 0)
2015-08 -27 18:08:08 25990 [Примечание] WSREP: Запрос на передачу состояния: успех, донор: 1
27-08-2015 18:08:08 25990 [Предупреждение] WSREP: 1.0 (db-gc-pxc1): Не удалось передать состояние в 0.0 (db-gc-pxc2): -12 (невозможно выделить память)
27 августа 2015 г. 18:08:08 25990 [ОШИБКА] WSREP: gcs/src/gcs_group.cpp:int gcs_group_handle_join_msg( gcs_group_t*, const gcs_recv_msg_t*)():731: никогда не получит состояние. Необходимо прервать.
27.08.2015 18:08:08 25990 [Примечание] WSREP: gcomm: завершающий поток
27.08.2015 18:08:08 25990 [Примечание] WSREP: gcomm: присоединяющийся поток
2015-08-27 18:08:08 25990 [Примечание] WSREP: gcomm: закрытие серверной части

Ниже приведена конфигурация моего кластера в файле my.cnf:

# Galera COnfig
wsrep_cluster_name = pxc
wsrep_cluster_address = gcomm://192.168.2.100,192.168.2.101,10.168.1.102
wsrep_node_address = 10.1.0.101
wsrep_provider = /usr/lib/libgalera_smm.so
wsrep_provider_options = "gcache.size=4G"
wsrep_slave_threads = 32
wsrep_sst_auth = "user:userpass"
wsrep_node_name = node2
#wsrep_sst_method = xtrabackup_throttle
wsrep_sst_method = xtrabackup-v2

Что может быть причиной этой ошибки?

К вашему сведению, у меня есть пользователь и пароль для wsrep_sst_auth, созданные в базе данных.

Вот остальная часть my.cnf, это поможет:

back_log = 65535
binlog_format = ROW
character_set_server = utf8
collation_server = utf8_general_ci
datadir = /var/lib/mysql
#default_storage_engine = InnoDB
expand_fast_index_creation = 1
expire_logs_days = 7
innodb_autoinc_lock_mode = 2
innodb_buffer_pool_instances = 6
innodb_buffer_pool_populate = 1
innodb_buffer_pool_size = 6G   # XXX 64GB RAM, 80%
#innodb_data_file_path = ibdata1:64M;ibdata2:64M:autoextend
innodb_file_format = Barracuda
innodb_file_per_table
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_io_capacity = 1600
innodb_large_prefix
innodb_locks_unsafe_for_binlog = 1
#innodb_log_file_size = 64M
innodb_print_all_deadlocks = 1
innodb_read_io_threads = 64
innodb_stats_on_metadata = FALSE
innodb_support_xa = FALSE
innodb_write_io_threads = 64
log-bin = mysqld-bin
log-queries-not-using-indexes
log-slave-updates
long_query_time = 1
max_allowed_packet = 64M
max_connect_errors = 4294967295
max_connections = 4096
min_examined_row_limit = 1000
performance-schema-instrument='%=ON'
port = 3306
relay-log-recovery = TRUE
skip-name-resolve
slow_query_log = 1
slow_query_log_timestamp_always = 1
table_open_cache = 4096
thread_cache = 1024
tmpdir = /srv/tmp
transaction_isolation = REPEATABLE-READ
updatable_views_with_limit = 0
user = mysql
wait_timeout = 60

person The Georgia    schedule 27.08.2015    source источник


Ответы (1)


Это, казалось бы, основная причина:

2015-08-27 18:08:08 25990 [Warning] WSREP: 1.0 (db-gc-pxc1): State transfer to 0.0 (db-gc-pxc2) failed: -12 (Cannot allocate memory)

Новый узел пытается присоединиться к кластеру. Новый узел в настоящее время не имеет состояния (локальный UUID равен нулю), поэтому IST недоступен — это означает, что ему необходимо запустить полный SST из узла-донора.

Узел pxc2 является присоединителем, а pxc1 — выбранным донором; однако мы получаем сообщение об ошибке от pxc1 о том, что передача состояния не удалась, что приводит к сбою присоединения.

Вы должны проверить журналы на донорском узле (pxc1) для более подробной информации; но журнал, который у нас есть, указывает на то, что у него недостаточно памяти для запуска экспорта базы данных. Не зная конфигурации вашего оборудования, я не могу дать определенного ответа, но, скорее всего, ваш файл my.cnf сконфигурирован так, что требует слишком много памяти для вашей доступной памяти, поэтому процесс xtrabackup не может быть запущен, или же база данных слишком велика. Добавьте больше памяти узлу или уменьшите выделение памяти в файле my.cnf.

person Steve Shipway    schedule 08.11.2018