我已经用3个节点安装了Percona集群。第一个节点通过引导很好地启动,但是当我尝试启动第二个节点以加入集群时,我会得到以下错误:
2015-08-27 18:08:08 25990警告WSREP:未能为增量状态传输做好准备:本地状态UUID (00000000-0000-0000-000000000000)与组状态UUID不匹配(a 6b3fced-4ca1-11e5-b5da-d69fa186273c):1(不允许操作) 在galera/src/replicator_str.cpp:prepare_for_IST():463.将无法使用。 2015-08-27 18:08:08 :08 25990注WSREP:成员0.0 (db-gc-pxc2)请求从'any‘进行状态转移。选择1.0 (db-gc-pxc1)(同步)作为供体。 2015-08-27 18:08:08 :08 25990注WSREP:移动主->接合器(TO: 0) 2015年-08-27 18:08:08 :08 25990 WSREP:请求国家转移:成功,捐助者:1 2015-08-27 18:08:08 :08 25990警告WSREP: 1.0 (db-gc-pxc1):状态传输到0.0 (db-gc-pxc2)失败:-12 (无法分配内存) 2015-08-27 18:08:08 :08 25990错误WSREP: gcs/src/gcs_WSREP p.cpp:int gcs_group_handle_join_msg(gcs_group_t*,const gcs_recv_msg_t*)():731:永远不会接收状态。需要中止。 2015-08-27 18:08:08 :08 25990注WSREP: gcomm:终止线程 2015-08-27 18:08:08 :08 25990注WSREP: gcomm:连接线程 2015-08-27 18:08: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是什么导致了这个错误?
FYI,我在数据库中创建了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发布于 2018-11-08 20:06:44
这似乎是根本原因:
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中的分配。
https://stackoverflow.com/questions/32247056
复制相似问题