我有一个MariaDB Galera集群.
如果某些节点发生故障,我不能盲目地重新启动它们,我必须首先确定一个好的wsrep_cluster_address.
如果我可以在其中一个健康节点上保留keepalived虚拟IP,我可以在其他节点上将此IP用作wsrep_cluster_address吗?因此,如果节点发生故障,加入节点将始终具有正确的wsrep_cluster_address?或者是否有其他解决方案可以自动重新加入?
我认为只要至少有一个健康节点(或主要组件?)向上,就应该以某种方式保持群集并自动重新加入节点.
(注意:我知道Galera cluster without having to specify all hosts on wsrep_cluster_address中的答案,但遗憾的是多播不是一种选择.)
解决方法:
您可以将多个地址放入wsrep_cluster_address,例如gcomm://10.1.1.1,10.1.1.2,10.1.1.3,Galera Cluster将巧妙地检测它.
我使用Percona XtraDB Cluster(也基于Galera Cluster)在生产环境中运行多个(> 10)集群:
>一个运行了2个DB服务器和1个服务器,我们将所有三个服务器都放入wsrep_cluster_address.
>另一个是7个数据库服务器,我们只将前三个服务器(位于不同的机架中)放入wsrep_cluster_address.
四年内发生了电源故障(所有三台服务器),硬件故障,这些集群上的软件错误,并且它们运行良好.