Mongo 恢复命令减少数据库大小

Mongo 恢复命令减少数据库大小

我有两个 mongo 数据库集群,每个集群都有三台机器。假设集群 1 和集群 2。为了降低成本,我必须终止集群 2。因此,我从集群 2 的主机上获取了一个数据库的 mongodump,该数据库的大小为 8.5 GB。我将该转储文件夹复制到集群 1 的主机上并在那里运行 mongorestore 命令,但当我show dbs在集群 1 上运行命令时,它显示的大小为 4.7GB。所以我的问题是,我犯了什么错误,还是 mongorestore 没有恢复索引,或者还有其他原因?

答案1

您的存储大小(这表明)可能show dbs会因恢复而有所不同,尤其是当原始部署有大量可供重复使用的空间时(例如,由于删除文档)。mongodump备份数据和索引定义,该mongorestore过程将为恢复的集合重建数据文件和索引。

为了更好地比较原始部署和恢复的部署,您应该查看输出db.stats()

假设备份和恢复过程没有任何问题,两个部署应该具有相似数量的数据库、集合、索引和对象。如果在执行部署时(或之后)正在主动写入原始部署mongodump,则结果可能会略有不同。

例如,通过 shell 输出所有数据库的统计信息mongo

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

相关内容