如何“安全地”关闭/重启 Galera 集群?

如何“安全地”关闭/重启 Galera 集群?

首次设置 Galera (Ubuntu 14.04),在重启节点后无法重启集群。我遵循本指南并且它没有明确提到如何处理关机或重启(对于内核补丁、虚拟机管理程序更新、例行维护)。

我找到了一些信息这里它解释了如何找到“safe_to_bootstrap”节点,但我认为这描述的是一个崩溃的节点。上面的链接将其描述为一个崩溃的节点,似乎恢复的运气不佳:

# cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid:    a4f9af07-f235-11e7-a0c0-233dd732dc29
seqno:   -1
safe_to_bootstrap: 1

但是,当我尝试启动该节点时,出现错误daemon.log

`WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)`

关闭集群的最佳方法是什么?如何安全地重新启动它?我认为常规reboot命令不足以彻底关闭 Galera 集群。

答案1

要正常关闭集群,首先要验证集群的状态。检查每个节点的状态。然后,如果状态已同步,则可以一次关闭一个节点。棘手的是,当重新启动节点时,需要重新创建集群,因为关闭会破坏集群。如果集群中的所有节点都已同步(即包含相同的正“seqno”值),则任何节点都可以启动新集群。如果可能的话,我会在投入生产之前对此进行大量测试。

答案2

我知道回答这个问题有点晚了。但如果有人在寻找有关如何安全关闭和重新启动 mariadb galera 集群的确切答案,我建议你这样做。

例如,我们在 ubuntu 服务器上运行了三个 mariadb galera 节点(1、2、3)。要以安全的方式停止/关闭集群而不破坏集群:

  1. 确保集群节点上没有活动的事务或连接。
  2. 在 node3 上,运行以下命令检查节点是否是最新的:SHOW STATUS LIKE 'wsrep_local_state_comment';您应该看到'synced'作为返回值
  3. 运行以下命令停止 mariadb 服务:sudo systemctl stop mariadb
  4. 在节点2和节点1上重复相同的步骤,首先在节点2上,然后在节点1上。

现在您以最佳方式停止了 galera 集群并重新启动,请从 node1 开始,如下所示:

  1. 在 Node1 上运行以下命令:galera_new_cluster
  2. 然后在 Node2 上 sudo systemctl start mariadb
  3. 在 node3 上 sudo sytsemctl start mariadb

相关内容