gpt4 book ai didi

mongodb - mongodb 中的主分片

转载 作者:可可西里 更新时间:2023-11-01 10:02:51 24 4
gpt4 key购买 nike

我正在尝试阅读 mongodb 分片的文档,但我对主分片的分配方式和主分片的含义有些困惑

根据文档统计

Every database has a primary shard that holds all the un-sharded collections for a database. The primary shard has no relation to the primary in a replica set.

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

假设我有 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 将成为我的主分片?

这种理解是正确的还是我哪里出错了?

最佳答案

是的,你是对的!你理解了概念。

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

而且您始终可以决定数据库的主要位置。创建后,你可以“移动”它,当DB仍然是空的或者很小的时候,它是快速运行的。 movePrimary

关于mongodb - mongodb 中的主分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38840456/

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