gpt4 book ai didi

MongoDb 复制和故障转移

转载 作者:行者123 更新时间:2023-12-02 00:37:40 25 4
gpt4 key购买 nike

我们有两台服务器用于我们想要复制和故障转移的 MongoDB 数据库。

案例一:

对于复制,我们将 Server1 设置为主要服务器,将 server2 设置为辅助服务器...一切正常。

预期:当服务器 1 出现故障时,辅助服务器 2 不会自动成为主服务器。它仍然是辅助服务器。那么 server2 是否有可能自动成为主要服务器。

案例 2:我是否需要 3 台强制性的 MongoDB 复制服务器,以便当服务器 1 出现故障时,服务器 2 将自动成为主要服务器,而服务器 3 将保持次要。 (这很好用)

那么,如果我们只有 2 个服务器,对此有何建议?

最佳答案

when server1 goes down, server2, which is secondary not become primary automatically..it remains secondary. so Is there possibility that server2 will automatically become primary.

在 2 节点副本集中,没有。

will I need 3 servers compulsory for MongoDB replication so that when server1 goes down, server2 will automatically become primary and server3 will remain secondary.

是的。

MongoDB 副本集旨在提供高可用性和冗余。为实现这一点,副本集将有一个主节点(写入将转到)和辅助节点(如果主节点发生问题,它可以接管)。

为此,MongoDB 使用投票机制,节点必须获得多数票才能成为主节点。离线节点将不投票。

因此在具有 3 个节点的副本集中,您可以让一个节点离线并且仍然有一个主节点。在 5 节点设置中,您可以有 2 个离线节点等。

此设计是为了防止由于网络分区而导致的所谓“裂脑”情况,在这种情况下,您有两个 Primaries,并且两个应用程序同时写入两个 Primaries。一旦分区被清除,就无法判断哪个主节点包含正确的数据。为防止这种情况,MongoDB 将不允许写入,以保护数据的一致性。

如果您只有 2 个数据承载节点,您可能可以使用 Arbiter 节点。但是,请记住,使用 Arbiter 有一些注意事项,例如使用 w:majority 进行写入(这是本次讨论的主题,但请随时就此创建一个新问题).

关于MongoDb 复制和故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48687257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com