我在 MariaDB 下运行一个三节点、多主 Galera 集群。
其中一个节点因硬件故障而崩溃(节点 3),不知何故,这也导致一个健康节点(节点 2)崩溃。因此,只剩下一个正在运行的节点(节点 1),此时它是集群中最先进的节点。
我正在等待托管公司修复第三个节点,但与此同时我无法重新启动第二个节点。尝试重新启动时,程序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:
我已清除 datadir,但节点仍无法加入集群。文件错误似乎很中肯,但它无法帮助我找到问题所在。
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
表明缺少这个程序。
答案1
解决了。
崩溃的节点配置为使用与捐赠节点不同的 SST 方法。它之前使用 Percona xtrabackup,由于意外或愚蠢,配置已过期。