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

MongoDB如何同时进行分片和复制?

袁青青
2023-03-14

对于伸缩/故障转移,mongodb使用“副本集”,其中有一个主服务器和一个或多个辅助服务器。Primary用于写操作。中学用于阅读。这几乎是SQL编程中使用的主从模式。如果主节点下降,则次节点集群中的次节点将取代它的位置。因此,水平伸缩和故障转移的问题得到了解决。然而,这似乎不是一个允许分叉的解决方案。一个真正的碎片只保存整个数据的一部分,所以如果副本集中的次要碎片是碎片,当它没有服务请求所需的所有数据时,它如何能够成为主数据呢?

共有1个答案

鄢飞鸾
2023-03-14

一个碎片是一个主要的和次要的(副本集)的总和,所以是的,您必须在每个碎片中有一个副本集。

整个数据的一部分保存在主数据中,并与次数据共享以保持一致性。如果主服务器退出,则选择一个辅助服务器作为新的主服务器,并具有与其前一个服务器相同的数据,以便立即开始服务。这意味着,被分录的数据仍然存在,没有丢失。

 类似资料:
  • 主要内容:MongoDB 中的分片,分片实例分片是跨多台机器存储数据的过程,它是 MongoDB 满足数据增长需求的方法。随着数据的不断增加,单台机器可能不足以存储全部数据,也无法提供足够的读写吞吐量。通过分片,您可以添加更多计算机来满足数据增长和读/写操作的需求。 为什么要分片? 在复制中,所有写操作都将转到主节点; 对延迟敏感的查询仍会转到主查询; 单个副本集限制为 12 个节点; 当活动数据集很大时,会出现内存不足; 本地磁盘不够大;

  • 我已经在一台具有三个不同端口(例如27018[master]、27019、27020)的机器中进行了复制。我还在一台机器上用两个不同的端口(比如27021、27022)进行了分片。 现在我必须为分片的计算机端口实现复制。我需要为27021和27022实现复制。我怎么能这么做?请帮我解决这个问题。 null

  • 我有下面的代码,它做(第一部分)什么我想画一个棋盘上有一些棋子。 也就是说,它得到一个棋子的图像和图像的高度,它将图像的绘制转换为棋子所在的正方形,并将图像缩放到正方形的大小。 假设我想把黑色的部分旋转180度。我希望在某个地方有这样的东西: 如果我进入SmallChessboardComponent并从第一个rotation transform语句中删除注释delims,我将rook颠倒在原来的

  • 我正在建立Shared集群的过程中。 我还想在集群中配置读副本。 假设有一个3,1个主要和2个次要的碎片。写将转到碎片的主成员,但我可以将所有读发送到次成员吗?

  • 我的模式实现受到了mongo官方网站上这篇教程的影响 这基本上是为时间序列数据设计的模式,我将每个设备每小时的数据存储在单个文档中的数组中。我创建字段组合发送数据和时间的设备id。例如,如果id为的设备在发送数据,则我的 字段将变为