首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存的vIP作为Galera wsrep_cluster_address

保存的vIP作为Galera wsrep_cluster_address
EN

Database Administration用户
提问于 2016-10-03 09:48:15
回答 2查看 2.2K关注 0票数 4

我有一个MariaDB Galera星系团。如果某些节点失败,我不能盲目地重新启动它们,我必须首先确定一个好的wsrep_cluster_address

如果我可以在一个健康的节点上保留一个保持不变的虚拟IP,我可以在其他节点上使用这个IP作为wsrep_cluster_address吗?因此,在节点失败的情况下,连接节点总是有一个正确的wsrep_cluster_address?或者是否有任何其他解决方案可以实现自动重新连接?

我觉得只要至少有一个健康的节点(或Primary Component?),就可以保持集群正常运行,并自动重新加入节点。向上。

(注意:我知道不需要指定wsrep上所有主机的Galera集群._集群_地址中的答案,但不幸的是,组播不是一种选择。)

EN

回答 2

Database Administration用户

发布于 2016-10-05 17:52:54

您可以在wsrep_cluster_address中放置多个地址,例如,gcomm://10.1.1.1,10.1.1.2,10.1.1.3,而Galera集群将智能地检测到它。

我使用Percona XtraDB集群(也基于Galera集群)在生产环境中运行服务器(> 10)集群:

  • 其中一台已与2台DB服务器和1台garbd服务器一起运行,我们将所有三台服务器放入wsrep_cluster_address中。
  • 另一个是7台数据库服务器,我们刚刚将前三台服务器(它们位于不同的机架中)放入wsrep_cluster_address中。

在四年内,这些集群出现了电源故障(所有三台服务器)、硬件故障、软件缺陷,而且它们运行得很好。

票数 1
EN

Database Administration用户

发布于 2016-10-13 21:14:39

我试过了,是的,似乎很管用。

测试设置:

3节点.

每个节点的eth0上有一个动态IP。

节点的主机名为:mari0mari1mari2,这些名称是可解析的。(可能不需要,但.)

所有3个节点上的wsrep_cluster_address='gcomm://1.2.3.4'。(注意:第一个节点必须使用wsrep_cluster_address='gcomm://'启动,集群运行后,wsrep_cluster_address`应该更改为vIP。)

节点上保留的vIP。

代码语言:javascript
复制
! Configuration File for keepalived
vrrp_script chk_mysqld {
    script "pidof mysqld"
    interval 2
}
vrrp_instance VI_1 {
    state [MASTER|BACKUP]
    interface eth0
    virtual_router_id 52
    priority [PRIO]
    advert_int 1
    authentication {
        auth_type AH
        auth_pass [password]
    }
    virtual_ipaddress {
        1.2.3.4
    }
    track_script {
        chk_mysqld
    }
}

(不是最好的,而是有效的)

第一个结果:

在第一个节点启动后,vIP被放置在它上。之后,我启动了剩下的2个节点。

节点加入集群,keepaliveds进入BACKUP状态。

service mysql stop将节点从集群中删除,service mysql start将节点添加到集群中。

我还没有测试以这种方式向集群添加第4和第5节点,但它也应该可以工作。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/151303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档