Database

Mongo restore 命令減少數據庫大小

  • December 21, 2019

我有兩個 mongo 數據庫集群,每個集群有三台機器。說 Cluster1 和 Cluster2。為了降低成本,我必須終止 Cluster2。所以我從 Cluster2 的主機上獲取了一個數據庫的 mongodump,它是 8.5 GB。我將該轉儲文件夾複製到 Cluster1 的主機並在那裡執行 mongorestore 命令,但是當我show dbs在 Cluster1 上執行命令時,它顯示大小為 4.7GB。所以我的問題是,我是否犯了任何錯誤或 mongorestore 沒有恢復索引或任何其他原因?

您的儲存大小(這show dbs表明)可能會在還原時發生變化,特別是如果原始部署有大量空間可供重用(例如,由於文件刪除)。Amongodump備份數據和索引定義,該mongorestore過程將為恢復的集合重建數據文件和索引。

為了更好地比較原始部署和恢復的部署,您應該查看db.stats()輸出。

假設備份和恢復過程沒有任何問題,兩個部署應該有相似數量的數據庫、集合、索引和對象。如果您的原始部署在執行時(或之後)被主動寫入mongodump,結果可能會略有不同。

例如,通過mongoshell 輸出所有數據庫的統計資訊:

db.adminCommand('listDatabases').databases.forEach(function(d) {
   printjson(db.getSiblingDB(d.name).stats());
})

引用自:https://serverfault.com/questions/993995