Mongodb

還原後 mongodump 分片集合大小變小

  • March 23, 2018

我需要在分片集合中將分片索引從範圍更改為散列。所以我需要 mongodump 並恢復集合。我有 3 個分片和 3 個副本集。MongoDB 版本是:3.2.11 我從一個 mongoses 開始 mongodump。

mongodump –collection Collname –db dbname

我在主集合中有“計數”:12925651,“大小”:21233976913。

但是 mongodump 是在 %75 完成的

$$ ##################…… $$ dbname.Collname 9700124/12925651 (75.0%) 完成轉儲 dbname.Collname (9700124 個文件) 我將轉儲恢復到另一個數據庫,並且集合大小小於主集合。

似乎 mongodump 沒有從其中一個分片中獲取數據。分片分佈為:

總計數據:19.77GiB 文件:12925651 個塊:475 個 Shard shard01 包含 24.98% 的數據,集群中的 24.98% 文件,分片上的平均 obj 大小:1KiB Shard shard02 包含 50.03% 的數據,集群中的 50.03% 文件,分片上的平均 obj 大小: 1KiB 分片 shard03 包含 24.98% 的數據,24.98% 的集群文件,分片上的平均 obj 大小:1KiB

問題是什麼?我能做些什麼來替換分片索引?

如果集群是健康的,則在不同的分片中沒有具有相同分片鍵的文件。如果有“重複”,那些是“孤兒”,應該從集群中清除。

這裡有更多關於孤兒的資訊以及如何刪除它們。

引用自:https://dba.stackexchange.com/questions/201766