aff*_*33a 1 mysql replication mariadb galera
我正在阅读文档,它特别提到一个 Galera 数据库集群必须至少有三个节点才能达到法定人数,尽管我们当前的设置是使用两个。
我的任务是重建集群。我的 Galera 用例是一个简单的主-主集群。它实际上是一个主从,第二个主坐在那里以防第一台服务器出现故障(然后我们可以将 PHP 配置指向它)。选择 Galera 是因为它是同步的。
我的问题是:
两节点配置是否安全/受支持?
在 3 节点设置中,如果第三个节点死亡,则它现在变为双节点设置。这现在不安全意味着我真的应该有一个 4 节点设置吗?
Galera“仲裁者”究竟是什么?
1) 两节点配置是否安全\支持?
Galera 仍将在两节点设置中运行。然而,总是存在裂脑情景的威胁。例如,假设您有 DB1 和 DB2 形成一个两节点的 Galera 集群。如果 DB1 出现故障,您需要故障转移到 DB2。虽然 DB1 正在进行维护以将其恢复,但 DB2 会获取您的所有更改。到 DB1 备份时,执行IST几乎是不可能的(或者至少在这一点上为时已晚)。您必须从 DB2执行完整的SST。最简单的方法是在启动 DB1 之前删除 Galera 缓存文件。在SST期间,DB2 处于只读状态(作为捐赠者)并且无法处理任何插入、更新或删除。当集群中有第三个节点时,至少有一台服务器可以收集插入、更新和删除。
您还会发现Percona XtraDB Cluster: Failure Scenarios with only 2 nodes更多信息。
2) 在 3 节点设置中,如果第三个节点死亡,它现在变成了双节点设置。这现在不安全意味着我真的应该有一个 4 节点设置吗?
两节点集群仍在运行。当第一次引入第三个节点或将第三个节点从停机状态恢复时,两个运行节点中的一个进入只读状态(作为施主),以帮助第三个节点追赶。只有一个
正如我在第一个问题中所说:当集群中有第三个节点时,至少有一个服务器可以收集插入、更新和删除。
3)Galera“仲裁者”究竟是什么?
我想你的意思是仲裁员(见副标题Using an arbitrator
)。它是一种机制,可在将节点重新引入集群时帮助决定谁扮演捐赠者的角色以及谁扮演集群的角色。它有助于缓解裂脑场景更多内容可以在 Galera 文档中找到。