![如何“安全地”关闭/重启 Galera 集群?](https://linux22.com/image/715780/%E5%A6%82%E4%BD%95%E2%80%9C%E5%AE%89%E5%85%A8%E5%9C%B0%E2%80%9D%E5%85%B3%E9%97%AD%2F%E9%87%8D%E5%90%AF%20Galera%20%E9%9B%86%E7%BE%A4%EF%BC%9F.png)
首次设置 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)。要以安全的方式停止/关闭集群而不破坏集群:
- 确保集群节点上没有活动的事务或连接。
- 在 node3 上,运行以下命令检查节点是否是最新的:SHOW STATUS LIKE 'wsrep_local_state_comment';您应该看到'synced'作为返回值
- 运行以下命令停止 mariadb 服务:sudo systemctl stop mariadb
- 在节点2和节点1上重复相同的步骤,首先在节点2上,然后在节点1上。
现在您以最佳方式停止了 galera 集群并重新启动,请从 node1 开始,如下所示:
- 在 Node1 上运行以下命令:galera_new_cluster
- 然后在 Node2 上 sudo systemctl start mariadb
- 在 node3 上 sudo sytsemctl start mariadb