当前位置: 首页 > 知识库问答 >
问题:

MongoDb复制和故障转移

白翰海
2023-03-14

对于复制,我们设置Server1作为主服务器,设置server2作为次服务器...一切正常。

期望:当server1停机时,次要的server2不会自动变成主要的。它仍然是次要的。server2也有可能自动成为主服务器。

情况2:MongoDB复制是否需要3台强制服务器,以便当server1宕机时,server2将自动成为主要服务器,server3将保持次要服务器。(这很管用)

共有1个答案

吕新
2023-03-14

当server1停机时,次要的server2不会自动变成主要的。它仍然是次要的。server2也有可能自动成为主服务器。

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

MongoDB复制是否需要3台服务器强制,以便当server1宕机时,server2将自动成为主要服务器,server3将保持次要服务器。

为了实现这一点,MongoDB使用投票机制,节点必须获得多数票才能成为主节点。脱机节点将不投票。

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

这种设计是为了防止由于网络分区而造成的所谓的“大脑分裂”场景,在这种情况下,你有两个初选,两个应用程序同时写到两个初选。一旦分区清除,就不可能区分哪个主包含正确的数据。为了防止这种情况,MongoDB将不允许写入以保护数据的一致性

 类似资料:
  • 我们有一个mongodb副本集,其中包含两个实例(127.0.0.1:27017-主要,127.0.0.1:27018-次要)和一个仲裁器(127.0.0.1:27019)。当我使用rs.steppdown(60)从主实例中退出时,它应该成为辅助实例,辅助实例应该成为主实例,所有写操作都应该在辅助实例中发生(退出后的主实例)。但在卸任后,我遇到了一个异常“无法将数据写入传输连接:远程主机强制关闭了

  • 问题内容: 在简单情况下,如果3台服务器具有1个主服务器和2个从属服务器而没有分片。是否有使用Java和Jedis的经过验证的解决方案,该解决方案没有单点故障,并且将自动处理单个服务器(无论是主服务器还是从服务器)(自动故障转移)。例如,提升主机并在故障后重置,而不会丢失任何数据。 在我看来,这似乎应该是一个已解决的问题,但是我找不到关于它的任何代码,而仅是对实现此方法的高级描述。 谁实际覆盖并在

  • 我正在尝试用6台机器实现一个Redis集群。我有一个由六台机器组成的流浪集群: 运行redis服务器 我编辑了上述所有服务器的/etc/redis/redis.conf文件,添加了这个 然后我在六台机器中的一台上运行了这个程序; Redis集群已启动并运行。我通过在一台机器上设置值手动检查它显示在其他机器上。 我的问题是,当我关闭或停止任何一台主机上的redis server时,整个集群都会停止运

  • 我想知道是否可以在Kafka制作程序中配置2个不同的Kafka集群。 目前我正试图让我的制片人 我正在使用Apache Kafka 2.8和Python 3.7的confluent_kafka==1.8.2包。 生产商代码下方: 当我杀死clusterB时,我得到了以下错误消息。

  • 如果你遵从了上述说明,复制设置仍然不工作,首先检查下面各项: ·检查错误日志的消息。许多用户遇到问题后没有及时地这样做而浪费了时间。 ·主服务器记录到了二进制日志?用SHOW MASTER STATUS检查。如果已经记录,Position应为非零。如果没有记录,确认正用log-bin和server-id选项运行主服务器。 ·是否从服务器在运行?使用SHOWSHOW SLAVE STATUS检查是否

  • 我们使用MQ作为传递消息的主要路径。这是我们的制度运作不可或缺的一部分。消息代理有时会失败,所有相关的队列也会随之失败。在camel中,有没有一种方法可以启动故障切换,并在其启动时恢复到主故障切换?