【问题标题】:primary shards in mongodbmongodb中的主分片
【发布时间】:2016-08-09 00:50:13
【问题描述】:

我正在尝试浏览 mongodb 分片的文档,我对如何分配主分片以及主分片的含义有点困惑

根据文档的统计,

每个数据库都有一个主分片来保存所有未分片的 数据库的集合。主分片与主分片无关 副本集中的主节点。

这是否意味着主分片是第一次创建数据库的分片中的分片(或服务器集合)?

假设我有 3 个分片 s0、s1 和 s2。在每个分片中我有 3 台服务器

  • s0 服务器 1(主要)
  • s0 服务器 2(辅助)
  • s0 - 服务器 3(辅助)

  • s1 - 服务器 4(主)

  • s1 - 服务器 5(辅助)
  • s1 - 服务器 6(辅助)

  • s2 - 服务器 7(主)

  • s2 - 服务器 8(辅助)
  • s2 - 服务器 9(辅助)

现在,当我通过 mongoclient 和通过 mongos 创建新数据库时。现在假设该请求转到分片 1 (s1)。由于创建数据库是一个写操作,它会转到分片 1 中的服务器 4,因此 s1 成为主分片?

另一方面,如果请求将遍历到 s2 分片,那么作为主要服务器 7 将创建集合,然后 s2 将成为我的主要分片?

这种理解是正确的还是我在某些地方出错了?

【问题讨论】:

    标签: mongodb sharding


    【解决方案1】:

    是的,你是对的!而且你理解概念。

    只要您不对单个集合进行分片,集合就必须在其中一个副本集中具有主位置。因此,将这些单独的碎片视为单独的 RS。 因此,一个 DB 位于一个分片上,如果您在 DB 内对集合进行分片,则集合将“平衡”到多个分片。使用 TAG,您可以决定该集合的分布位置。正常情况是均匀分布到所有分片上。

    而且您始终可以决定 DB 的主要位置是什么。创建后,可以“移动”它,当DB还是空的或者很小的时候,它的运行速度很快。 movePrimary

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      相关资源
      最近更新 更多