我正在學習用MongoDB的分片,我有後續的結構:爲什麼當我添加新的集合只是一個碎片獲取數據? - MongoDB的
- 1的mongod我ConfigServer只有1名成員在ReplicaSet每個
- 2碎片有2名成員在ReplicaSet
- 1 Mongos
我有一個名爲ERP的一個數據庫,3集,pessoas,produtos和contatos。
所以我必須使用加我的收藏:
sh.shardCollection("erp.<collection>", { id: 1 }, true)
我收集pessoas開始,這個系列有2000個文檔和分佈是這樣的:
mongos> db.pessoas.getShardDistribution()
Shard rs1 at rs1/desenv1:27019,desenv1:27020
data : 57KiB docs : 1497 chunks : 36
estimated data per chunk : 1KiB
estimated docs per chunk : 41
Shard rs3 at rs3/desenv1:27022,desenv1:27023
data : 19KiB docs : 503 chunks : 36
estimated data per chunk : 541B
estimated docs per chunk : 13
Totals
data : 77KiB docs : 2000 chunks : 72
Shard rs1 contains 75.27% data, 74.85% docs in cluster, avg obj size on shard : 39B
Shard rs3 contains 24.72% data, 25.15% docs in cluster, avg obj size on shard : 38B"
在此之後我加入收藏產品,我給了她1001個寄存器,那麼爲什麼這個系列是這樣分配的:
mongos> db.produtos.getShardDistribution()
Shard rs1 at rs1/desenv1:27019,desenv1:27020
data : 67KiB docs : 1001 chunks : 1
estimated data per chunk : 67KiB
estimated docs per chunk : 1001
Totals
data : 67KiB docs : 1001 chunks : 1
Shard rs1 contains 100% data, 100% docs in cluster, avg obj size on shard : 69B"
個
問題:
爲什麼只有replicaSet 「RS1」 越來越的數據?同樣的事情發生與採集contatos,只有replicaSet「RS1」獲取數據,我不能將數據分配到其他碎片。
爲什麼出現這種情況,什麼我做錯了嗎?
如何分配同樣的數據?例如,對於2000個寄存器,1000個寄存器位於一個分片中,1000個寄存器位於另一個分片中。
如果你們需要更多的信息,請告訴我。
感謝