立即启动 galera 中的所有节点
Starting all nodes in galera at once
我有一个包含三个节点的 galera 集群,如果我关闭三个虚拟机并同时启动它们,systemd 将自动在每个虚拟机上启动 mariadb。
有时会发生所有 mariadb 实例同时启动的情况,这是集群损坏的结果。
我必须使用 galera_new_cluster
重新启动
问题是,为什么一次启动所有 mariadb 实例会破坏集群?
谢谢
无论何时启动一个节点,它要么作为集群中的第一个节点启动(启动一个新集群),要么尝试使用 wsrep_cluster_address
连接到现有节点。行为取决于节点选项。
因此,每次关闭或丢失所有节点并重新启动它们时,都无法连接到任何东西,您需要启动一个 new 集群。 galera_new_cluster
通过使用 --wsrep-new-cluster
选项启动节点来实现这一点,该选项覆盖 wsrep_cluster_address
.
的当前值
如果有时它会自动为您工作,则很可能意味着您的一个节点已通过 wsrep_cluster_address=gcomm://
或 wsrep-new-cluster
永久配置为 "first node"。这本身就是一个错误的设置。如果您丢失或关闭了 只有这个节点并且必须重新启动它,它不会加入集群中的其余节点,它会创建一个新节点。
当您同时启动所有节点时,您会创建一个竞争条件。如果您的 "first node" 先出现并且初始化足够快,它将创建一个新集群,其他节点将加入它。如果另一个节点先出现,它将无法加入任何东西,因此你得到一个 "broken cluster"。
您可以在此处找到有关重新启动整个集群的更多信息:
http://galeracluster.com/documentation-webpages/restartingcluster.html
引导集群的推荐方法是首先启动一个高级节点,然后是第二个和第三个,因此您需要检查所有节点的 lsn 号或检查 grastate.date 文件,您可以在其中检查所有节点值。
所以按照这些步骤你的集群节点就不会崩溃
我有一个包含三个节点的 galera 集群,如果我关闭三个虚拟机并同时启动它们,systemd 将自动在每个虚拟机上启动 mariadb。
有时会发生所有 mariadb 实例同时启动的情况,这是集群损坏的结果。
我必须使用 galera_new_cluster
问题是,为什么一次启动所有 mariadb 实例会破坏集群?
谢谢
无论何时启动一个节点,它要么作为集群中的第一个节点启动(启动一个新集群),要么尝试使用 wsrep_cluster_address
连接到现有节点。行为取决于节点选项。
因此,每次关闭或丢失所有节点并重新启动它们时,都无法连接到任何东西,您需要启动一个 new 集群。 galera_new_cluster
通过使用 --wsrep-new-cluster
选项启动节点来实现这一点,该选项覆盖 wsrep_cluster_address
.
如果有时它会自动为您工作,则很可能意味着您的一个节点已通过 wsrep_cluster_address=gcomm://
或 wsrep-new-cluster
永久配置为 "first node"。这本身就是一个错误的设置。如果您丢失或关闭了 只有这个节点并且必须重新启动它,它不会加入集群中的其余节点,它会创建一个新节点。
当您同时启动所有节点时,您会创建一个竞争条件。如果您的 "first node" 先出现并且初始化足够快,它将创建一个新集群,其他节点将加入它。如果另一个节点先出现,它将无法加入任何东西,因此你得到一个 "broken cluster"。
您可以在此处找到有关重新启动整个集群的更多信息: http://galeracluster.com/documentation-webpages/restartingcluster.html
引导集群的推荐方法是首先启动一个高级节点,然后是第二个和第三个,因此您需要检查所有节点的 lsn 号或检查 grastate.date 文件,您可以在其中检查所有节点值。
所以按照这些步骤你的集群节点就不会崩溃