【问题标题】:Is mongodb database available while it is being sharded?分片时 mongodb 数据库是否可用?
【发布时间】:2013-11-26 21:12:07
【问题描述】:

我在 mongodb 中对一个大型数据库进行分片。由于集合中的文档数量超过 100,000,000,所以分片需要很长时间,对吧?我现在正在对这个数据库做分片操作,命令行正好处于等待状态。如何查看分片操作是否正常处理?

【问题讨论】:

  • 当您指的是“分片”时,您实际上是指“平衡”吗?就像在多个分片之间分配文档一样?
  • 您从哪里填充数据?设置完shard db server后不能做吗?
  • 来自 Amol 的好问题。我发现 mongodb 在为已经填充数据的数据库设置分片后会陷入漫长的等待。但是在我清理数据库,设置分片并重新填充数据后,mongoDB运行良好。我现在可以清楚地看到分片状态。谢谢。如果方便的话,投票给我好吗?
  • 对于Asya,是的,我想是的。但是由于数据真的很庞大,我迫不及待地想猜测mongodb是只是在分发数据还是已经死了。所以,我重启mongodb并清库,在有数据之前设置分片,然后重新填充数据。这样就可以了。如果方便的话,投我一票好吗​​?
  • @AmolMKulkarni 你的问题是绝对正确的。是的,我不应该在填充数据之前进行分片,我必须在填充数据之前进行分片。我这样做了,漫长的等待从未发生过。跨度>

标签: mongodb sharding


【解决方案1】:

执行以下步骤(订单事项):

  1. 设置分片 MongoDB 服务器

  2. 然后,对你得到的数据库做分片操作(集合 文件超过 100,000,000 左右..)

【讨论】:

    【解决方案2】:

    好吧,事实上,这是因为我应该先对数据库进行分片,然后再将所有数据填充到数据库中。我不应该将所有数据填充到已准备好分片配置但尚未启用分片的数据库。在这种情况下,我运行 sh.enableSharding("database name") 和 sh.shardCollection(),终端将陷入永远的等待。但是,如果我在一个空数据库上运行 sh.enableSharding("database name") 和 sh.shardCollection(),然后将数据填充到其中,则可以在插入数据时将数据分片到不同的分片中。 嗯,又是一段经历。

    【讨论】:

      猜你喜欢
      • 2020-10-14
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多