立即启动galera中的所有节点

时间:2017-01-24 12:51:06

标签: mariadb galera

我有三个节点的galera集群,如果我关闭了三个虚拟机并立即启动它们,systemd将自动在每个虚拟机上启动mariadb。

有时会发生所有mariadb实例同时启动,这是集群损坏的结果。

我必须使用galera_new_cluster

重新启动

问题是,为什么一次启动所有mariadb实例会破坏群集?

谢谢

2 个答案:

答案 0 :(得分:0)

无论何时启动节点,它都将作为群集中的第一个节点(启动新群集)启动,或者尝试使用wsrep_cluster_address连接到现有节点。行为取决于节点选项。

因此,每当您关闭或丢失所有节点并再次启动它们时,就无需连接,您需要启动 new 群集。 galera_new_cluster通过启动具有--wsrep-new-cluster选项的节点来覆盖当前wsrep_cluster_address的值。

如果有时它自动适用于您,则很可能意味着您的某个节点永久配置为"第一个节点",可以通过wsrep_cluster_address=gcomm://wsrep-new-cluster 。这本身就是一个错误的设置。如果您丢失或关闭仅此节点并且必须重新启动它,它将无法加入群集中的其余节点,它将创建一个新节点。

一旦启动所有节点,就会创建竞争条件。如果你的第一个节点"首先出现并初始化足够快,它将创建一个新的集群,其他节点将加入它。如果另一个节点首先出现,它就无法加入任何东西,因此你会得到一个破坏的集群"。

您可以在此处找到有关重新启动整个群集的更多信息: http://galeracluster.com/documentation-webpages/restartingcluster.html

答案 1 :(得分:0)

建议引导群集的方式是首先启动高级节点,然后是第二个和第三个,这样你就需要检查所有节点的lsn,或者检查grastate.date文件,你可以检查所有节点的值。

因此,请按照以下步骤操作,您的群集节点不会崩溃