MongoDB复制因子

问题描述 投票:1回答:2

我是Mongo的新手,已经使用过Cassandra一段时间了。我没有从Mongo的文档中找到任何明确的答案。我在下面的问题都是密切相关的。

1)如何在Mongo中指定复制因子?

在C *中,您可以为整个数据库和/或每个表定义复制因子(多少个副本)。 Mongo的新复制集概念类似于C *的想法。但是,我不知道如何为Mongo中的每个表/集合定义复制因子。 Mongo在哪里定义?

2)副本集和复制因素?

您似乎可以在Mongo群集中为数据库定义多个副本集。副本集最多可包含7个投票成员。 5个成员的副本集是否意味着数据被复制5次?或者副本集仅用于投票?

3)什么集合的副本集?

副本集配置文档未提及有关数据库或集合的任何内容。有没有办法指定副本集的目标集合?

4)副本集定义?

如果我想创建一个15节点的Mongo集群并保留每个记录的3个副本,那么如何将节点分区为多个副本集?

谢谢。

mongodb replication
2个回答
1
投票

Mongo复制通过复制整个实例来工作。它不是在单个数据库或集合级别完成的。除仲裁者外,所有副本都包含数据副本。仲裁员不持有任何数据,只参加新主要选举。它们通常被部署为创建足够多数,如果实例发生故障,则可以选择新实例作为主实例。

这里很好地解释了https://docs.mongodb.com/manual/replication/


0
投票

复制是指确保在多个Mongo数据库服务器上提供相同数据的过程。为了提高数据可用性,有时需要这样做。

因为如果您的主MongoDB服务器因任何原因而关闭,将无法访问数据。但是,如果您定期将数据复制到另一台服务器,即使主服务器出现故障,您也可以从另一台服务器访问数据。

复制的另一个目的是负载平衡的可能性。如果有许多用户连接到系统,而不是让每个人都连接到一个系统,则可以将用户连接到多个服务器,以便平均分配负载。

在MongoDB中,多个MongDB服务器分组在称为副本集的集合中。副本集将具有主服务器,该服务器将接受来自客户端的所有写入操作。在此之后添加到集合中的所有其他实例将被称为辅助实例,主要用于所有读取操作。

© www.soinside.com 2019 - 2024. All rights reserved.